Назад | Перейти на главную страницу

Почему openSSL не может проверить сертификат Google?

Когда я запускаю команду 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
---