Score:0

การเชื่อมต่อที่ปลอดภัยกับเว็บ/เมลเซิร์ฟเวอร์ล้มเหลวใน MacOS/iOS

ธง am

ฉันหมดหวัง: ฉันย้ายสองโดเมนจากเซิร์ฟเวอร์หนึ่งไปยังอีกเซิร์ฟเวอร์หนึ่งซึ่งทำงานได้อย่างราบรื่น ฉันรักษาความปลอดภัยทั้งโดเมน (เว็บและเมล) ด้วยใบรับรอง Letsencryptตอนนี้เจ้าของโดเมนเหล่านี้บ่นเกี่ยวกับเมลเซิร์ฟเวอร์ที่ไม่ทำงาน แต่ไม่สามารถทำได้ เนื่องจากโดเมนอื่นสามารถส่งและรับอีเมลได้ ขณะแก้ไขปัญหา ฉันสังเกตเห็นว่าไม่สามารถดึงหน้าเว็บจากเซิร์ฟเวอร์ของฉันบน macOS หรือ iOS (การเชื่อมต่อถูกปฏิเสธ - ไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัยได้) ภายใต้ Windows/Linux/Android ทั้งหมดนี้ไม่มีปัญหา และการรับส่งอีเมลยังทำงานได้อย่างไม่มีที่ติอีกด้วย ดังนั้น wtf จะเกิดขึ้น? ดูเหมือนว่า Apple จะไม่สามารถทำงานร่วมกับใบรับรอง Letsencrypt ที่สร้างขึ้นได้ สิ่งที่ฉันไม่สามารถจินตนาการได้

ไม่มีใครมีความคิดใด ๆ เกี่ยวกับเรื่องนี้? ขอบคุณสำหรับความช่วยเหลือของคุณ.

เซิร์ฟเวอร์: Ubuntu 20.04, Plesk จัดการ

ลูกค้า: macOS Catalina, Apple Mail

---[แก้ไข]--- ฉันวิ่ง

openssl s_client -เชื่อมต่อ maildomain.com:465

ในเครื่องที่ใช้ Windows และ Mac เพื่อดูว่าเกิดอะไรขึ้นเมื่อเชื่อมต่อกับเซิร์ฟเวอร์เมลของฉัน ผลลัพธ์บนพีซี:

    เชื่อมต่อแล้ว(00000003)
เชิงลึก=2 C = สหรัฐอเมริกา O = กลุ่มวิจัยความปลอดภัยทางอินเทอร์เน็ต CN = ISRG Root X1
ตรวจสอบผลตอบแทน:1
ความลึก=1 C = US, O = Let's Encrypt, CN = R3
ตรวจสอบผลตอบแทน:1
ความลึก=0 CN = maildomain.com
ตรวจสอบผลตอบแทน:1
---
ห่วงโซ่ใบรับรอง
 0 วินาที:CN = maildomain.com
   i:C = US, O = Let's Encrypt, CN = R3
 1 วินาที:C = US, O = Let's Encrypt, CN = R3
   i:C = US, O = Internet Security Research Group, CN = ISRG Root X1
 2 วินาที:C = US, O = Internet Security Research Group, CN = ISRG Root X1
   i:O = Digital Signature Trust Co., CN = DST Root CA X3
---
ใบรับรองเซิร์ฟเวอร์
-----เริ่มต้นใบรับรอง-----
MIIFJzCCBA+gAwIBAgISBBHETtaspqio7t1ZKYQ36xHMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMTEwMDUwNzQyMjVaFw0yMjAx ... เป็นต้น
-----จบใบรับรอง-----
หัวเรื่อง = CN = maildomain.com

ผู้ออก = C = US, O = Let's Encrypt, CN = R3

---
ไม่มีการส่งชื่อ CA ของใบรับรองไคลเอ็นต์
สรุปการลงนามเพียร์: SHA256
ประเภทลายเซ็นเพียร์: RSA-PSS
คีย์อุณหภูมิเซิร์ฟเวอร์: X25519, 253 บิต
---
SSL handshake อ่าน 4676 ไบต์และเขียน 395 ไบต์
การยืนยัน: ตกลง
---
ใหม่, TLSv1.2, Cipher คือ ECDHE-RSA-AES256-GCM-SHA384
รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต
รองรับการเจรจาต่อรองใหม่อย่างปลอดภัย
การบีบอัด: ไม่มี
การขยายตัว: ไม่มี
ไม่มีการเจรจา ALPN
เซสชัน SSL:
    โปรโตคอล : TLSv1.2
    รหัส : ECDHE-RSA-AES256-GCM-SHA384
    รหัสเซสชัน: DDE8ED4DBF7BD8E8F2D411EDE00C7522C0A15927E3D0C75F58F174B7464270D3
    เซสชัน-ID-ctx:
    มาสเตอร์คีย์: 6D3167E0283ED9BA1F6427841212C8BAF37FF75998B369DE4184618EF9BFBE9F8860809CC9B7xxxxxxxxxxxxxxxxxxxx
    ตัวตน PSK: ไม่มี
    คำใบ้ประจำตัว PSK: ไม่มี
    ชื่อผู้ใช้ SRP: ไม่มี
    คำแนะนำอายุการใช้งานตั๋วเซสชัน TLS: 7200 (วินาที)
    ตั๋วเซสชั่น TLS:
    0000 - 21 be ab 05 b8 95 30 14-cf c1 ff 7d 98 aa 3c 82 !.....0....}..<. ...ฯลฯ...

    เวลาเริ่มต้น: 1633683311
    หมดเวลา : 7200 (วินาที)
    ตรวจสอบรหัสส่งคืน: 0 (ตกลง)
    ความลับหลักเพิ่มเติม: ใช่
---
220 my.server.com ESMTP Postfix (เดเบียน/GNU)
ล้มเลิก
221 2.0.0 ลาก่อน
ปิด

และนี่คือคำตอบบน Mac:

เชื่อมต่อแล้ว(00000003)
341:ข้อผิดพลาด:1407742E:รูทีน SSL:SSL23_GET_SERVER_HELLO:tlsv1 เวอร์ชันโปรโตคอลการแจ้งเตือน:S23_clnt.c:596:

ดังนั้น ดูเหมือนว่า Mac จะรองรับ TLS1.2/TLS1.3 ไม่ได้...

ข้อเสนอแนะจะทำอย่างไร?

ph flag
macOS Catalina ควรจะรองรับทั้ง TLS v1.2 และ 1.3 (อย่างน้อยก็ใช้ไลบรารี TLS ของระบบ ไม่แน่ใจเกี่ยวกับคำสั่ง `openssl`) ฉันจะลองลบใบรับรอง "ISRG Root X1" ออกจากบันเดิลที่เซิร์ฟเวอร์ใช้ -- เป็นใบรับรองที่ลงนามข้ามจาก "DST Root CA X3" ซึ่งเพิ่งหมดอายุ และอาจทำให้ไคลเอ็นต์สับสนได้
am flag
เฮ้ @Gordon Davisson ! ขอบคุณสำหรับคำตอบ. คุณจะทราบได้อย่างไรว่าใบรับรองเหล่านี้หมดอายุแล้ว
ph flag
ดู[ข้อความนี้ที่ LetsEncrypt](https://letsencrypt.org/2021/10/01/cert-chaining-help.html) และ [ข้อความนี้จาก Scott Helme](https://scotthelme.co.uk/lets -encrypt-root-expiration-post-mortem/) โปรดทราบว่าตัวกลางที่คุณให้บริการยังไม่หมดอายุ แต่รูทที่ลงนามโดยได้ นี่ค่อนข้างแปลก แต่ทำเพื่อรองรับไคลเอนต์ Android รุ่นเก่า (เก่ากว่า 7.1.1) คุณต้องการสนับสนุน Android เวอร์ชันเก่าหรือไม่ ถ้าอย่างนั้นก็ต้องใช้ตัวกลาง แต่ยังไงฉันก็จะลองทดสอบดู อย่างน้อยคุณก็บอกได้ว่ามันเป็นตัวกลางที่ทำให้ไคลเอนต์ Mac สับสนหรือไม่
ph flag
BTW อีกอย่างที่ต้องลองคือเพิ่ม "ISRG Root X1" จริง (อันที่ลงนามเอง ไม่ใช่อันกลางที่มีชื่อเดียวกัน) ซึ่งมีให้ [ที่นี่](https://letsencrypt.org/certificates/) ไปที่ โซ่. โดยทั่วไปไม่จำเป็นต้องรวมใบรับรองรูทในบันเดิลของเซิร์ฟเวอร์ แต่ในกรณีนี้ คุณควรลองดูว่าจะลดความสับสนให้กับไคลเอนต์ Mac หรือไม่
am flag
สวัสดี @กอร์ดอน ขออภัยสำหรับการตอบกลับปลาย. ฉันลบใบรับรองผ่าน dpkg แต่ดูเหมือนว่ายังอยู่ที่นั่น เมื่อเชื่อมต่อกับเซิร์ฟเวอร์จดหมายของฉัน ฉันยังคงเห็นบรรทัดแรกหลังจาก CONNECT (โพสต์เริ่มต้น, บันทึกแรก).ฉันทำอะไรผิด? ขอบคุณและขอแสดงความนับถือ.
ph flag
ฉันเริ่มสงสัยมากขึ้นเกี่ยวกับเวอร์ชัน TLS -- ลอง `openssl s_client -connect github.com:443
am flag
เฮ้ @กอร์ดอน ขอบคุณมากสำหรับคำแนะนำของคุณ ฉันจะลองดู ฉันเดาว่าน่าจะเป็นปัญหาของเซิร์ฟเวอร์มากกว่า เนื่องจากไม่สามารถเข้าถึงเว็บไซต์ที่เข้ารหัส SSL จากเซิร์ฟเวอร์นั้นได้เช่นกัน แต่อย่างที่ฉันบอก เฉพาะจากอุปกรณ์ iOS และ Mac เท่านั้น คุณมีความคิดอื่น ๆ หรือไม่?
ph flag
เน็ต ณ จุดนี้ ฉันแค่มองหาข้อมูลเพิ่มเติมเพื่อแยกสิ่งที่ทำให้เกิดปัญหา
am flag
ตกลง. Github ตอบกลับด้วย "ใหม่ TLSv1/SSLv3, Cipher คือ..." ใบรับรองคือใบรับรองการรับประกันระดับสูงของ DigCert
am flag
@Gordon ฉันสามารถใช้ iPhone และ iPad ของลูกๆ เพื่อเข้าถึงเว็บไซต์ที่โฮสต์บนเซิร์ฟเวอร์นี้ได้ ดูเหมือนว่าจะมีปัญหากับเครื่อง Mac ของผู้ใช้ มีความเป็นไปได้หรือไม่ที่คอมพิวเตอร์ของเขาติดไวรัสบางอย่าง? ฉันไม่ใช่คนคลั่งไคล้ Apple .... ขอโทษ
am flag
@GordonDavisson: แม้หลังจากอัปเดตซอฟต์แวร์ของ Mac แล้ว ก็ไม่มีทางที่จะใช้งานได้ ฉันกำลังคิดที่จะรองรับ TLS/SSL เวอร์ชันเก่า ฉันจะทำอย่างนั้นได้อย่างไร
am flag
ฉันต้องถามว่าฉันลบใบรับรองที่หมดอายุออกจากเซิร์ฟเวอร์อย่างถูกวิธีหรือไม่ เพราะยังคง: ```ความลึก=2 C = US, O = Internet Security Research Group, CN = ISRG Root X1 ตรวจสอบผลตอบแทน:1 ความลึก=1 C = US, O = Let's Encrypt, CN = R3 ตรวจสอบผลตอบแทน:1 ความลึก=0 CN = maildomain.com ตรวจสอบผลตอบแทน:1 ```
am flag
โซ่: `ห่วงโซ่ใบรับรอง 0 วินาที:CN = maildomain.com i:C = US, O = Let's Encrypt, CN = R3 1 วินาที:C = US, O = Let's Encrypt, CN = R3 i:C = US, O = Internet Security Research Group, CN = ISRG Root X1 2 วินาที:C = US, O = Internet Security Research Group, CN = ISRG Root X1 i:O = Digital Signature Trust Co., CN = DST Root CA X3` ฉันไม่เข้าใจ...
ph flag
ตกลง ตอนนี้ฉันสับสนจริงๆ ผลลัพธ์ OpenSSL ล่าสุดนั้นในความคิดเห็นของคุณ (มาจาก Windows หรือไม่) แสดงว่ายังคงให้บริการตัวกลางที่ลงนามข้าม ฉันไม่คุ้นเคยกับ Plesk เลย ดังนั้นฉันจึงไม่มีคำแนะนำใดๆ เกี่ยวกับการลบออก แต่สำหรับการทดสอบ GitHub ส่วน "ใหม่ TLSv1/SSLv3" ดูจะผิดทั้งหมด เพราะเท่าที่ฉันเห็นว่าไม่มีเซิร์ฟเวอร์ใดรองรับ TLSv1 หรือ SSLv3 (ดู [ผลการทดสอบ SSL Labs นี้](https://www .ssllabs.com/ssltest/analyze.html?d=github.com)อาจมีมัลแวร์/การสกัดกั้น SSL/อะไรทำนองนั้นเกิดขึ้น?
am flag
ไม่. ฉันวิ่ง ```òpenssl s_client -เชื่อมต่อ maildomain.com:465 ```
ph flag
คุณจะโอเคไหมที่จะแชร์ชื่อโดเมนจริง เพื่อให้ฉันทำการทดสอบได้โดยตรง
am flag
แน่นอน หากคุณให้ที่อยู่อีเมลของคุณแก่ฉัน.... ;)
am flag
ข้อผิดพลาดนี้ยังคงอยู่ แม้ว่าจะเปลี่ยนไปใช้เซิร์ฟเวอร์ใหม่แล้วก็ตาม SSLLabs แสดงสีเขียวบนโดเมนที่ปลอดภัย แต่ฉันไม่สามารถเรียกหน้าเว็บได้ เฉพาะ Edge เท่านั้นที่สามารถรับเนื้อหาได้ Firefox และ Chrome: ไม่! และ Safari กำลังบ่นว่าไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัยได้ Wtf กำลังจะเกิดขึ้น?

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา