Когда я запускаю команду openssl -connect www.google.com:443
из виртуальной машины Debian я получаю в выводе следующее:
Проверьте код возврата: 20 (невозможно получить сертификат местного эмитента)
Что тут происходит? У меня никогда не было проблем с сертификатами Google, так что это должно быть что-то с Debian или с библиотекой openSSL. Отладка других систем SSL сложнее, когда подобные инструменты не проверяют работоспособность систем, которые я знаю!
В другом дистрибутиве Linux, который я использую, голый -connect
verb на самом деле не импортирует пакеты корневого центра сертификации, установленные в системе. Для этого вам нужно добавить -CApath /etc/ssl/wherever/
, где путь - это расположение пакетов сертификатов корневого ЦС.
Без CAPath:
CONNECTED(00000003)
depth=1 C = ZA, O = Thawte Consulting (Pty) Ltd., CN = Thawte SGC CA
verify error:num=20:unable to get local issuer certificate
verify return:0
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---
С CAPath:
CONNECTED(00000003)
depth=2 C = US, O = "VeriSign, Inc.", OU = Class 3 Public Primary Certification Authority
verify return:1
depth=1 C = ZA, O = Thawte Consulting (Pty) Ltd., CN = Thawte SGC CA
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = mail.google.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
i:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
1 s:/C=ZA/O=Thawte Consulting (Pty) Ltd./CN=Thawte SGC CA
i:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority
---