รุ่น
อูบุนตู 20.04, OpenSSL 1.1.1f
Opensl ของฉันควรมีคุณสมบัติ (หรือ "แก้ไขจุดบกพร่อง" หากคุณต้องการ) ที่เปิดใช้งานตัวเลือกแรกที่เชื่อถือได้ตามค่าเริ่มต้น และนี่คือการยืนยัน:
17:57UTC:root@bard:/etc#openssl ยืนยัน -help 2>&1| grep trust_first
-trusted_first ค้นหา trust store ก่อน (ค่าเริ่มต้น)
ใบรับรองและเชน (ด้านล่าง) ใช้งานได้ดีเมื่อติดตั้งในเว็บเซิร์ฟเวอร์ ใบรับรองนี้ได้รับการติดตั้งและทั้งแบบโลคัล ขด
จากบรรทัดคำสั่งและเว็บเบราว์เซอร์ของฉันพอใจกับไฟล์ใบรับรองและไฟล์เชน (ด้านล่าง)
ปัญหาที่ฉันพยายามแก้ไขที่นี่คือฉันไม่สามารถ ตรวจสอบ ไฟล์ chain และใบรับรองนี้โดยใช้ opensl จากบรรทัดคำสั่ง
ติดตั้ง ISRG Root X1 แล้วหรือยัง
ใช่. ติดตั้ง และ ca-certificate มีความสุข
17:57UTC:root@bard:/etc# ls /usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
-rw-r--r-- 1 รูทรูท 1939 22 ก.ย. 11:46 /usr/share/ca-certificates/mozilla/ISRG_Root_X1.crt
17:59UTC:root@bard:/etc# grep ISRG /etc/ca-certificates.conf
mozilla/ISRG_Root_X1.crt
17:59UTC:root@bard:/etc# update-ca-certificates
กำลังอัปเดตใบรับรองใน /etc/ssl/certs...
0 เพิ่ม 0 ลบ; เสร็จแล้ว.
ใช้ hooks ใน /etc/ca-certificates/update.d...
เสร็จแล้ว.
ใบรับรองและห่วงโซ่
ใบรับรองเป็นไฟล์เดียว และมีไฟล์ลูกโซ่ใบรับรองที่มีใบรับรองสองรายการ
นี่คือใบรับรองâ¦
-----เริ่มต้นใบรับรอง-----
MIIFKDCCBBCgAwIBAgISA1G6nqla/B5CEPZI6YO4Y7eIMA0GCSqGSIb3DQEBCwUA
MDIxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MQswCQYDVQQD
EwJSMzAeFw0yMTA5MTcwNjE1MjBaFw0yMTEyMTYwNjE1MTlaMBwxGjAYBgNVBAMT
EXdpbmRzb3IuYmxrYnguY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
AQEA2vM7VD207G7s04jA5QSG9jmmYCO+xi+4B/nnID66BIA5YJ05ZU6iahuIWDHn
hqfHNW/E+DlouC6MqInuAPOuOMhkQ8sOJMXOwvMXwKbuH5TmkBzieMHcp1X2igAm
/3tGFXzJ4kCLvmm3OOttwAC+fS38F7+pLKQ/yEnNtV/nZbYlHWAJjee1pMc64oHz
jaG7bdXNBvFNFTAk3p9Td61IU0GiF5IG9dDFAFTdV3lYchH9mpKRcuIlupKHchXE
1ZS2MkFX6W4oRdiCT5/lDRACSpLS58LFUTpL/dCOxYAH5xuVHg0teLubiEmygPbT
/k/7JcQBnznBfwCBANJJG15PWQIDAQABo4ICTDCCAkgwDgYDVR0PAQH/BAQDAgWg
MB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAMBgNVHRMBAf8EAjAAMB0G
A1UdDgQWBBQTeSF5n3kz5+2Jk8YIS3WMf6EBOTAfBgNVHSMEGDAWgBQULrMXt1hW
y65QCUDmH6+dixTCxjBVBggrBgEFBQcBAQRJMEcwIQYIKwYBBQUHMAGGFWh0dHA6
Ly9yMy5vLmxlbmNyLm9yZzAiBggrBgEFBQcwAoYWaHR0cDovL3IzLmkubGVuY3Iu
b3JnLzAcBgNVHREEFTTATghF3aW5kc29yLmJsa2J4LmNvbTBMBgNVHSAERTBDMAgG
BmeBDAECATA3BgsrBgEEAYLfEwEBATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vY3Bz
LmxldHNlbmNyeXB0Lm9yZzCCAQQGCisGAQQB1nkCBAIegfUEgfIA8AB3AESUZS6w
7s6vxEAH2Kj+KMDa5oK+2MsxtT/TM5a1toGoAAABe/KcFs0AAAQDAEgwRgIhANJ1
8OZD4y0iwpF7tWBRI+Mzo0m4jAr66TeG+zPFeGhKAiEA6YEv9lTAZNY9V8kmBWs7
FUWddQnd7Defgl+C0AQa+uEAdQB9PvL4j/+IVWgkwsDKnlKJeSvFDngJfy5ql2iZ
fiLw1wAAAXvynBbuAAAAEAwBGMEQCIC3LXfXhust7RRcK+491g2UrVZ92m1BfbA19
71tzuTk0AiAhsz2A1NKEq7cjeDEb9i+XAopxh6A/rXvQrzLf0IjNLjANBgkqhkiG
9w0BAQsFAAOCAQEAb6FnAvJwOSWWFILY2E9lUJ/3fo/xDG7gtXfQfNkZfzrQ5uXa
tcc2YCV0SJve7OqRF3xAK/TYbIFpLjsBfetDoE+Tz2Vqa7sAYwH4J5IIVXt4LQef
PoHapxOmUO4+gfDqkVwKlXYXyKTCoIH0JUEfuwuA4hABBnbD6WDh0Zt4RO+ZYd9C
8Lh14YixuupKu3/Xm+yjT7OksVU9zX65gJ9Pades/qjHMb58SCli5ouljueLLNrJ
9/jhxM/5bcom4AgMvIybU2UnXaTDKkw5PhYRE9d6O8hSy1AZ4txKDyYEy9rESeR0
cDn5dB90nx74SJXHQfK2ScC2oVNvz4MXAPrYEg==
-----จบใบรับรอง-----
ไฟล์ลูกโซ่มีใบรับรองระดับกลางสองใบ รายการแรก ("MIIFFjâ¦") ลงนามโดยใบรับรอง CA "ISRG Root X1" ที่ใหม่กว่า และรายการที่สอง ("MIIFYDâ¦") ลงนามโดย "DST อะไรก็ตามที่เป็น X3" เก่า/ปัจจุบันที่หมดอายุแล้ว
นี่คือไฟล์ลูกโซ่â¦
-----เริ่มต้นใบรับรอง-----
MIIFFjCCAv6gAwIBAgIRAJerCErPDBinU/bWLiWnX1owDQYJKoZIhvcNAQELBQAw
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMjAwOTA0MDAwMDAw
WhcNMjUwOTE1MTYwMDAwWjAyMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNTGV0J3Mg
RW5jcnlwdDELMAkGA1UEAxMCUjMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
อ่าวIBAQC7AhUozPaglNMPEuyNVZLD+ILxmaZ6QoinXSaqtSu5xUyxr45r+XXIo9cP
R5QUVTVXjJ6oojkZ9YI8QqlObvU7wy7bjcCwXPNZOOftz2nwWgsbvsCUJCWH+jdx
sxPnHKzhm+/b5DtFUkWWqcFTzjTIUu61ru2P3mBw4qVUq7ZtDpelQDRrK9O8Zutm
NHz6a4uPVymZ+DAXXbpyb/uBxa3Shlg9F8fnCbvxK/eG3MHacV3URuPMrSXBiLxg
Z3Vms/EY96Jc5lP/Ooi2R6X/ExjqmAl3P51T+c8B5fWmcBcUr2Ok/5mzk53cU6cG
/kiFHaFpriV1uxPMUgP17VGhi9sVAgMBAAGjggEIMIIBBDAOBgNVHQ8BAf8EBAMC
AYYwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMBMBIGA1UdEwEB/wQIMAYB
Af8CAQAwHQYDVR0OBBYEFBQusxe3WFbLrlAJQOYfr52LFMLGMB8GA1UdIwQYMBaA
FHm0WeZ7tuXkAXOACIGlj26ZtuMDIGCCsGAQUFBwEBCYwJDAiBggrBgEFBQcw
AoYWaHR0cDovL3gxLmkubGVuY3Iub3JnLzAnBgNVHR8EIDAeMBygGqAYhhZodHRw
Oi8veDEuYy5sZW5jci5vcmcvMCIGA1UdIAQbMBkwCAYGZ4EMAQIBMA0GCysGAQQB
gt8TAQEBMA0GCSqGSIb3DQEBCwUAA4ICAQCFyk5HPqP3hUSFvNVneLKYY611TR6W
PTNlclQtgaDqw+34IL9fzLdwALduO/ZelN7kIJ+m74uyA+eitRY8kc607TkC53wl
ikfmZW4/RvTZ8M6UK+5UzhK8jCdLuMGYL6KvzXGRSgi3yLgjewQtCPkIVz6D2QQz
CkcheAmCJ8MqyJu5zlzyZMjAvnnAT45tRAxekrsu94sQ4egdRCnbWSDtY7kh+BIm
lJNXoB1lBMEKIq4QDUOXoRgffuDghje1WrG9ML+Hbisq/yFOGwXD9RiX8F6sw6W4
avAuvDszue5L3sz85K+EC4Y/wFVDNvZo4TYXao6Z0f+lQKc0t8DQYzk1OXVu8rp2
yJMC6alLbBfODALZvYH7n7do1AZls4I9d1P4jnkDrQoxB3UqQ9hVl3LEKQ73xF1O
yK5GhDDX8oVfGKF5u+decIsH4YaTw7mP3GFxJSqv3+0lUFJoi5Lc5da149p90Ids
hCExroL1+7mryIkXPeFM5TgO9r0rvZaBFOvV2z0gp35Z0+L4WPlbuEjN/lxPFin+
HlUjr8gRsI3qfJOQFy/9rKIJR0Y/8Omwt/8oTWgy1mdeHmmjk7j1nYsvC9JSQ6Zv
MldlTTKB3zhThV1+XWYp6rjd5JW1zbVWEkLNxE7GJThEUG3szgBVGP7pSWTUTsqX
nLRbwHOoq7hHwg==
-----จบใบรับรอง-----
-----เริ่มต้นใบรับรอง-----
MIIFYDCCBEigAwIBAgIQQAF3ITfU6UK47naqPGQKtzANBgkqhkiG9w0BAQsFADA/
MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT
DkRTVCBSb290IENBIFgzMB4XDTIxMDEyMDE5MTQwM1oXDTI0MDkzMDE4MTQwM1ow
TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh
cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwggIiMA0GCSqGSIb3DQEB
AQUAA4ICDwAwggIKAoICAQCt6CRz9BQ385ueK1coHIe+3LffOJCMbjzmV6B493XC
ov71am72AE8o295ohmxEk7axY/0UEmu/H9LqMZshftEzPLpI9d1537O4/xLxIZpL
wYqGcWlKZmZsj348cL+tKSIG8+TA5oCu4kuPt5l+lAOf00eXfJlII1PoOK5PCm+D
LtFJV4yAdLbaL9A4jXsDcCEbdfIwPPqPrt3aY6vrFk/CjhFLfs8L6P+1dy70sntK
4EwSJQxwjQMpoOFTJOwT2e4ZvxCzSow/iaNhUd6shweU9GNx7C7ib1uYgeGJXDR5
bHbvO5BieebbpJovJsXQEOEO3tkQjhb7t/eo98flAgeYjzYIlefiN5YNNnเรา+w5y
sR2bvAP5SQXYgd0FtCrWQemsAXaVCg/Y39W9Eh81LygXbNKYwagJZHduRze6zqxZ
Xmidf3LWicUGQSk+WT7dJvUkyRGnWqNMQB9GoZm1pzpRboY7nn1ypxIFeFntPlF4
FQsDj43QLwWyPntKHEtzBRL8xurgUBN8Q5N0s8p0544fAQjQMNRbcTa0B7rBMDBc
SLeCO5imfWCKoqMpgsy6vYMEG6KDA0Gh1gXxG8K28Kh8hjtGqEgqiNx2mna/H2ql
PRmP6zzjzZN7IKw0KKP/32+IVQtQi0Cdd4Xn+GOdwiK1O5tmLOsbdJ1Fu/7xk9TND
TwIDAQABo4IBRjCCAUIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
SwYIKwYBBQUHAQEEPzA9MDsGCCsGAQUFBzAChi9odHRwOi8vYXBwcy5pZGVudHJ1
c3QuY29tL3Jvb3RzL2RzdHJvb3RjYXgzLnA3YzAfBgNVHSMEGDAWgBTEp7Gkeyxx
+tvhS5B1/8QVYIWJEDBUBgNVHSAETTBLMAgGBmeBDAECATA/BgsrBgEEAYLfEwEB
ATAwMC4GCCsGAQUFBwIBFiJodHRwOi8vY3BzLnJvb3QteDEubGV0c2VuY3J5cHQu
b3JnMDwGA1UdHwQ1MDMwMaAvoC2GK2h0dHA6Ly9jcmwuaWRlbnRydXN0LmNvbS9E
U1RST09UQ0FYM0NSTC5jcmwwHQYDVR0OBBYEFHm0WeZ7tuXkAXOACIJGlj26Ztu
MA0GCSqGSIb3DQEBCwUAA4IBAQAKcwBslm7/DlLQrt2M51oGrS+o44+/yQoDFVDC
5WxCu2+b9LRPwkSICHXM6webFGJueN7sJ7o5XPWioW5WlHAQU7G75K/QosMrAdSW
9MUgNTP52GE24HGNtLi1qoJFlcDyqSMo59ahy2cI2qBDLKobkx/J3vWraV0T9VuG
WCLKTVXkcGdtwlfFRjlBz4pYg1htmf5X6DYO8A4jqv2Il9DjXA6USbW1FzXSLr9O
he8Y4IWS6wY7bCkjCWDcRQJMEhg76fsO3txE+FiYruq9RUWhiF1myv4Q6W+CyBFC
Dfvp7OOGAN6dEOM4+qR9sdjoSYKEBpsr6GtPAQw4dy753ec5
-----จบใบรับรอง-----
เกิดอะไรขึ้น?
ถ้าฉันแค่ขอให้ openssl ยืนยัน ก็ไม่มีความสุข:
18:09UTC:root@bard:~/TEMP#openssl ตรวจสอบ -purpose sslserver -CAfile ./chain.pem ./cert.pem
C = US, O = Internet Security Research Group, CN = ISRG Root X1
ข้อผิดพลาด 2 ที่การค้นหาเชิงลึก 2: ไม่สามารถรับใบรับรองผู้ออก
ข้อผิดพลาด ./cert.pem: การยืนยันล้มเหลว
รออะไร
â¦หมายความว่าใบรับรอง CA "ISRG Root X1" ไม่ได้ติดตั้งในเครื่องใช่หรือไม่
ทำให้น้ำขุ่น
Letsencrypt รวมใบรับรองทั้งสองนั้นไว้ในไฟล์ลูกโซ่เพื่อรองรับระบบ Android รุ่นเก่า จะเกิดอะไรขึ้นถ้าฉันลองใช้เชนที่ง่ายกว่าและรวมใบรับรองระดับกลางที่ลงนามโดย "ISRG Root X1" ที่ใหม่กว่า ดังนั้น แค่ "MIIFFjâ¦" ใน chain fileâ¦
18:21UTC:root@bard:~/TEMP# openssl ตรวจสอบวัตถุประสงค์ sslserver -CAfile ./chainISRGX1.pem ./cert.pem
./cert.pem: ตกลง
18:22UTC:root@bard:~/TEMP# echo $?
0
มีความสุข!
ซึ่งทำให้ฉันเชื่อว่าการมีอยู่ของใบรับรองที่สองในไฟล์ลูกโซ่ที่ทำให้เกิดปัญหา...
แต่ Opensl ของฉันเปิดใช้งานตัวเลือก trust_first