นับตั้งแต่ผู้ให้บริการอีเมลของเราเปลี่ยนใบรับรอง SSL ลูกค้า POP3 ที่ใช้โมโนปฏิเสธที่จะเชื่อมต่อกับเซิร์ฟเวอร์ POP ที่ปลอดภัยเพื่อดาวน์โหลดอีเมล ลูกค้ารายอื่นไม่มีปัญหา เช่น Thunderbird และ Outlook ไม่ไม่มากที่สุดเว็บไซต์ตรวจสอบ SSL ที่มีความสามารถในการตรวจสอบพอร์ตแปลกยกเว้นคนนี้ ฉันได้ทำงานร่วมกับผู้ให้บริการทั้งสองเพื่อพยายามระบุปัญหา แต่ในที่สุดก็ถึงจุดจบกับทั้งคู่เนื่องจากฉันไม่รู้ใบรับรอง SSL เพียงพอที่จะสามารถชี้แนะผู้ให้บริการทั้งสองให้เข้าใจถึงความผิดพลาด
ในระหว่างการสอบสวนความสนใจของฉันถูกดึงไปยังความแตกต่างในเอาต์พุตของสองคำสั่งต่อไปนี้ (ฉันได้ลบใบรับรองออกจากเอาต์พุตเพื่อให้สามารถอ่านได้):
echo "" | openssl s_client -showcerts -connect pop.gmail.com:995
เชื่อมต่อ (00000003) ความลึก = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ยืนยันข้อผิดพลาด: num = 20: ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น ยืนยันผลตอบแทน: 0 --- ห่วงโซ่ใบรับรอง 0 s: / C = US / ST = California / L = Mountain View / O = Google Inc / CN = pop.gmail.com i: / C = US / O = Google Inc / CN = Google Internet Authority G2 ----- เริ่มต้นใบรับรอง ----- ----- สิ้นสุดใบรับรอง ----- 1 s: / C = US / O = Google Inc / CN = Google Internet Authority G2 i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- เริ่มต้นใบรับรอง ----- ----- สิ้นสุดใบรับรอง ----- 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = Equifax / OU = Equifax Secure Certificate Authority ----- เริ่มต้นใบรับรอง ----- ----- สิ้นสุดใบรับรอง ----- --- ใบรับรองเซิร์ฟเวอร์ หัวเรื่อง = / C = US / ST = แคลิฟอร์เนีย / L = Mountain View / O = Google Inc / CN = pop.gmail.com ผู้ออก = / C = US / O = Google Inc / CN = ผู้ให้บริการอินเทอร์เน็ตของ Google G2 --- ไม่มีการส่งชื่อไคลเอ็นต์ใบรับรอง CA --- SSL handshake อ่าน 3236 ไบต์และเขียน 435 ไบต์ --- ใหม่ TLSv1 / SSLv3 รหัสคือ RC4-SHA รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต รองรับการเจรจาต่อรองอย่างปลอดภัย การบีบอัด: ไม่มี การขยายตัว: ไม่มี SSL-เซสชัน: โปรโตคอล: TLSv1 รหัส: RC4-SHA รหัสเซสชัน: 745F84194498529B91B7D9194363CBBD23425446CF2BFF3BF5557E3C6606CA06 เซสชัน ID-ctx: มาสเตอร์คีย์: DED1AE0A44609F9D6F54626F4370ED96436A561A59F64D66240A277066322DCD2CCB9A6D198C95F4D7B67C7E67D Key-Arg: ไม่มี เวลาเริ่มต้น: 1397678434 หมดเวลา: 300 (วินาที) ยืนยันรหัสส่งคืน: 20 (ไม่สามารถรับใบรับรองผู้ออกในท้องถิ่น) --- + ตกลง Gpop พร้อมรับคำขอจาก 69.3.61.10 c13mb42148040pdj DONE
echo "" | openssl s_client -showcerts -connect secure.emailsrvr.com:995
เชื่อมต่อ (00000003) ความลึก = 2 / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ตรวจสอบข้อผิดพลาด: num = 19: ใบรับรองที่ลงนามเองในห่วงโซ่ใบรับรอง ยืนยันผลตอบแทน: 0 --- ห่วงโซ่ใบรับรอง 0 s: / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = ดู www.rapidssl.com/resources/cps (c) 14 / OU = การควบคุมโดเมนที่ตรวจสอบแล้ว - RapidSSL (R) /CN=secureem i: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA ----- เริ่มต้นใบรับรอง ----- ----- สิ้นสุดใบรับรอง ----- 1 s: / C = US / O = GeoTrust, Inc./CN=RapidSSL CA i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- เริ่มต้นใบรับรอง ----- ----- สิ้นสุดใบรับรอง ----- 2 s: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA i: / C = US / O = GeoTrust Inc./CN=GeoTrust Global CA ----- เริ่มต้นใบรับรอง ----- ----- สิ้นสุดใบรับรอง ----- --- ใบรับรองเซิร์ฟเวอร์ หัวเรื่อง = / serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ / dD / OU = 4159320284 / OU = ดู www.rapidssl.com/resources/cps (c) 14 / OU = การควบคุมโดเมนผ่านการตรวจสอบ - RapidSSL (R) /CN =secure.rrv ผู้ออก = / C = US / O = GeoTrust, Inc./CN=RapidSSL CA --- ไม่มีการส่งชื่อไคลเอ็นต์ใบรับรอง CA --- SSL handshake อ่าน 3876 ไบต์และเขียน 319 ไบต์ --- ใหม่ TLSv1 / SSLv3 รหัสคือ DHE-RSA-AES256-SHA รหัสสาธารณะของเซิร์ฟเวอร์คือ 2048 บิต รองรับการเจรจาต่อรองอย่างปลอดภัย การบีบอัด: ไม่มี การขยายตัว: ไม่มี SSL-เซสชัน: โปรโตคอล: TLSv1 รหัส: DHE-RSA-AES256-SHA Session-ID: 3F4EE3992B46727BE2C7C3E76A9A6A8A64D64D66EE843CB1BB17A76AE2E030C7161 เซสชัน ID-ctx: รหัสหลัก: 016209E50432EFE2359DB73AB527AF718152BFE6F88215A9CE40604E8FF2E2A3AC97A175F46DF737596866A8BC8E3F7F Key-Arg: ไม่มี เวลาเริ่มต้น: 1397678467 หมดเวลา: 300 (วินาที) ยืนยันรหัสส่งคืน: 19 (ใบรับรองที่ลงนามเองในห่วงโซ่ใบรับรอง) --- DONE
ฉันพยายามเข้าใจว่าสิ่งนี้มีความหมายหรือไม่เพราะเมื่อมีการจัด-CApath
เตรียมตัวเลือกไว้คำสั่งจะไม่สร้างข้อผิดพลาดใด ๆ :
openssl s_client -CApath /etc/ssl/certs -showcerts -connect secure.emailsrvr.com:995
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = "GeoTrust, Inc.", CN = RapidSSL CA
verify return:1
depth=0 serialNumber = tG0GnsyAUkdX7DEo15ylNBjQJqAWZ/dD, OU = 4159320284, OU = See www.rapidssl.com/resources/cps (c)14, OU = Domain Control Validated - RapidSSL(R), CN = secure.emailsrvr.com
verify return:1
...
openssl s_client -CApath /etc/ssl/certs -showcerts -connect pop.gmail.com:995
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = pop.gmail.com
verify return:1
...
ฉันยังสามารถใช้-CAfile
ตัวเลือกสำเร็จหลังจากดาวน์โหลดใบรับรอง CAfileโดยตรงจาก GeoTrust
อย่างไรก็ตาม Fog Creek ดูเหมือนว่าจะคิดว่าปัญหาอยู่ที่ใบรับรองเพราะพวกเขาได้ลองเพิ่มใบรับรองในTrust
ร้านของโมโนโดยไม่ประสบความสำเร็จ ฉันจะไม่เห็นด้วยกับพวกเขา แต่ (ดังกล่าวข้างต้น) ในขณะที่ตัวตรวจสอบ SSL ส่วนใหญ่ไม่ตรวจสอบพอร์ต 995 หรือประสบความสำเร็จในระหว่างการพยายามฉันพบหน้านี้ที่สร้างข้อผิดพลาด SSL 7
ฉันจะตีความผลลัพธ์ที่ถูกต้องเพื่อหมายความว่าไม่มีอะไรผิดปกติกับใบรับรองหรือไม่
openssl s_client
จะไม่นำเข้ารูทไฟล์ใด ๆ โดยค่าเริ่มต้น ลองใช้สิ่งนี้แทน: openssl s_client -connect secure.emailsrvr.com:995 -showcerts -CApath /etc/ssl/certs
และคุณอาจพบว่าข้อผิดพลาดที่ลงนามเองหายไป