Добрый день!
Я искал Google высоко и низко. Боже мой, я никогда не проходил страницу 2 результатов поиска раньше! Но этот ставит меня в тупик.
У меня есть веб-сайт, который я защищаю сертификатом, подписанным промежуточным сертификатом, подписанным самозаверяющим сертификатом CA. Кажется, что на каждом сайте stackexchange q / a и т. Д. Указано следующее:
- Свяжите свой сертификат сервера с промежуточным сертификатом, а затем с сертификатом CA. (т. е. cat apache.pem> chain_file; cat middleary.pem >> chain_file; cat ca.pem >> chain_file)
- Укажите этот новый файл в конфигурации ssl apache, используя SSLCertificateFile, поскольку SSLCertificateChainFile устарела.
- Проверьте с помощью браузера (или ssllabs.com или sslshopper.com), чтобы увидеть, если сертификат экспортируется.
Однако, когда я проверяю с помощью браузера, я вижу только сертификат сервера и не содержит промежуточных сертификатов или сертификатов CA. То же самое подтверждают и ssllabs и sslshopper.
Не хватает ли опции, которая гарантирует, что вы публикуете всю цепочку, а не только сертификат сервера?
Спасибо
apache-http-server
ssl
certificate
ssl-certificate
scuba_mike
источник
источник
openssl verify -CAfile ca.pem -untrusted intermediary.pem apache.pem
и это возвращение ОК.Ответы:
Если у вас есть OpenSSL, проверить это очень просто:
Я объясню компоненты:
cat /dev/null
:openssl s_client
Работает так же, какtelnet
. Он устанавливает соединение, и вы можете взаимодействовать с ним. Когдаopenssl
встречается EOF во входном потоке, соединение закрывается.cat /dev/null
немедленно приводит к EOF. Кроме того, вы можете использовать CtrlDдля выдачи EOF на терминале.openssl s_client
: «Клиентская программа SSL / TLS»-showcerts
: Показать бланки сертификатов в формате PEM. В противном случае показывает только сертификат сервера.-servername example.com
: Установить имя сервера для SNI . Требуется при выполнении HTTPS на основе имен vhosts.-connect example.com:443
: Подключение кexample.com
порту443
, стандартному порту HTTPS.Это приводит к чему-то вроде этого:
Я использовал домен Google здесь, потому что он имеет более глубокую цепочку сертификатов, чем
example.com
. Сертификат здесь имеет «Дополнительные имена субъекта» и, следовательно, также действителен дляinbox.google.com
.Неправильно настроенный сервер может пропустить промежуточный сертификат, который здесь называется «Google Internet Authority G2». Сертификат Equifax является избыточным, потому что GeoTrust является установленным центром сертификации, которому напрямую доверяют ваш браузер.
источник
-connect
аргумент) не может быть решен. Это совершенно не связано с TLS, сертификатами и еще чем-то. Вы уверены, что у вас не было опечатки в командной строке?verify error:num=20:unable to get local issuer certificate'. Second error:
проверьте ошибку: num = 27: сертификат не является доверенным` Третья ошибка:verify error:num=21:unable to verify the first certificate
если вы хотите попробовать, не стесняйтесь: aws.mikesoh.comSSLCertificateFile
директивы, которая поддерживает промежуточные (или, в более общем случае: множественные) сертификаты, доступна только начиная с 2.4.8.X509_check_private_key:key values mismatch
. сейчас проверяю в Интернете ...Спасибо Дэниелу Б. Проблемы были двоякими:
SSLCertificateChainFile
вместо этого, у меня все еще были проблемы с использованием openssl s_client.Оказывается, за номером 2 мне пришлось раскомментировать строку.
Спасибо всем!
источник