Недавно я установил самоподписанный сертификат SSL на один из наших веб-серверов nginx. Если я попытаюсь получить файл с --no-check-certificate
Я получаю указанные ниже ошибки. Вы можете перейти на сайт с помощью браузера, браузер распознает, что он самоподписан, и в сертификате отобразится вся правильная информация. Судя по сообщению, я должен найти способ доверять сертификату локально, но разве это не противоречит цели --no-check-certificate?
$ wget https://www.example.com/index.html --no-check-certificate
--2015-02-20 14:13:58-- https://www.example.com/index.html
Resolving example.com... 192.0.2.1
Connecting to example.com|192.0.2.1|:443... connected.
WARNING: cannot verify example.com’s certificate, issued by “/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Domain Validation Secure Server CA”:
Unable to locally verify the issuer’s authority.
WARNING: no certificate subject alternative name matches
requested host name “example.com”.
HTTP request sent, awaiting response... Read error (Connection reset by peer) in headers.
Retrying.
Любые идеи очень приветствуются.
Глядя на wgetвывода ошибок и командной строки, проблема здесь не в проверке сертификата на стороне клиента. Кажется, что сервер отклоняет соединение. Это может быть связано с wget не предоставлять серверу требуемый сертификат клиента (проверьте, есть ли он в другом браузере), этот конкретный пользовательский агент отклоняется и т. д.
Лучше проверю журнал сервера.
Вы можете попробовать добавить отладку: -S и -d для заголовков сервера и клиента.
tcpdump лучше и предоставит полную историю, но следующая лучшая вещь - это заголовки без полной полезной нагрузки пакета.