У меня есть два SSL-сертификата:
snipsalonsoftware.com
который в настоящее время находится на месте и работает нормально.app.snipsalonsoftware.com
который был куплен, но еще не установлен.Что я пытаюсь сделать прямо сейчас, это просто проверить действительность snipsalonsoftware.com
сертификат, так что, когда я пытаюсь проверить app.snipsalonsoftware.com
, Я знаю, что получаю содержательный ответ.
Это профессионально подписанный сертификат от Comodo через DreamHost, а не самозаверяющий сертификат. Как я могу проверить цепочку доверия с помощью openssl
или какой другой способ?
Вот что я получаю прямо сейчас, когда пытаюсь:
$ openssl verify domain.pem
domain.pem: /OU=Domain Control Validated/OU=Provided by New Dream Network, LLC/OU=DreamHost Basic SSL/CN=snipsalonsoftware.com
error 20 at 0 depth lookup:unable to get local issuer certificate
Но для меня это вроде как, конечно, вы не можете получить местный сертификат - его нет. Я не понимаю, как я должен проверять профессионально подписанный сертификат.
Обычно это означает, что путь CA по умолчанию OpenSSL не содержит сертификата, подписанного проверяемым вами - обычно это промежуточный сертификат.
Вам нужно будет получить копию промежуточного звена (большинство центров сертификации предоставят его, или вы можете получить его из SSL-соединения, доверие которого работает), и указать на него в своем openssl
команда с -CAfile intermediate.pem
.
Вы должны иметь возможность скачать у своего провайдера все сертификаты, которые образуют цепь доверия от подписанного вами сертификата до подписывающего центра сертификации.
Затем используйте openssl verify
используя эти сертификаты. Проверьте как -CAfile
и -CApath
варианты verify(1)
команда, чтобы узнать, как.
Вы также можете использовать онлайн-инструмент, например SSL-Checker который графически показывает цепочку доверия, которую представляет ваш сервер, и помогает выяснить, какие сертификаты отсутствуют в цепочке
Вы должны кошка все сертификаты для окончательного CA_Chain.crt:
:~$ cat RootCA.crt IntermediateCert1 IntermediateCert2 > CA_Chain.crt
:~$ openssl verify -CAfile CA_Chain.crt website.crt
(website.crt sign by IntermediateCert2)