
Windows XP продолжает использовать сертификат Snakeoil, с которым поставляется Ubuntu, несмотря на то, что он никогда не использовался ни в одном виртуальном хосте.
Сертификат находится по адресу
/etc/ssl/certs/ssl-cert-snakeoil.pem
Я не уверен, где находится ключ. Единственное, что я вижу, что кажется правдоподобным, это
/etc/ssl/private/ssl-cert-snakeoil.key
Я думаю, что сертификат CA находится на
/etc/ssl/certs/ca-certificates.crt
но я просто не уверен.
До сих пор я пробовал различные команды openssl, такие как
openssl ca -keyfile /etc/ssl/private/ssl-cert-snakeoil.key \
-revoke /etc/ssl/certs/ssl-cert-snakeoil.pem \
-cert /etc/ssl/certs/ca-certificates.crt
Результатом этого было
Using configuration from /usr/lib/ssl/openssl.cnf
CA certificate and CA private key do not match
14805:error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch:x509_cmp.c:406:
У меня нет идей. Любая помощь будет оценена по достоинству.
РЕДАКТИРОВАТЬ
Вот что произошло:
Я купил сертификат от GeoTrust, установил его, активировал новый виртуальный хост с помощью этого сертификата и перезапустил apache2. Ни разу за время существования этого сервера не использовался никакой другой сертификат для защиты веб-трафика, не говоря уже о сертификате Snakeoil. Windows Vista и выше, а также OSX и все протестированные мной дистрибутивы Linux используют правильный сертификат. Windows XP использует сертификат Snakeoil (в IE. Никаких других браузеров на этой виртуальной машине). Вот несколько снимков экрана:
решение1
Учитывая предоставленную вами дополнительную информацию, мне, вероятно, будет легче начать другой ответ.
Не похоже, что фиктивный сертификат "snakeoil" представляется клиенту Windows. Сертификат "snakeoil" генерируется с темой CN=Ubuntu
, в то время как сертификат, представляемый в Windows box, имеет тему CN=Production
. Поэтому здесь мы рассматриваем третий сертификат.
Я могу увидеть тот же сертификат, если подключусь к вашему серверу с помощью OpenSSL s_client
:
$ openssl s_client -connect portal.avendimedia.com:443
...
Certificate chain
0 s:/CN=Production
i:/CN=Production
...
Я полагаю, что дело в том, что вы настроили свой веб-сервер на использованиеИндикация имени серверарасширение. Это расширение предназначено для того, чтобы сервер мог предоставлять различные сертификаты в зависимости от того, к какому имени хоста клиент хочет подключиться.
Это отлично работает в большинстве современных браузеров, но не работает в Internet Explorer в версиях Windows до Vista. На данный момент кажется крайне маловероятным, что Microsoft обновит библиотеки SSL в Windows XP для поддержки расширения SNI.
Если вам необходимо, чтобы ваш сайт работал с Internet Explorer на XP, попробуйте удалить ссылки на другой SSL-хост, работающий на том же IP-адресе, из конфигурации Apache.
решение2
Сертификат «snakeoil» автоматически генерируется при ssl-cert
установке пакета.
Это самоподписанный сертификат, поэтому отзывать его не имеет смысла. Однако вы можете легко сгенерировать новый:
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
Вероятно, вам придется перезапустить все службы, которые использовали этот сертификат, чтобы изменения вступили в силу.
Когда вы говорите, что Windows XP продолжает использовать сертификат, что именно вы имеете в виду? Если вы указали вашему веб-браузеру на этом компьютере доверять конкретному сертификату Snakeoil, сгенерированному вашей системой Ubuntu, то отозвать это доверие в интерфейсе управления сертификатами браузера должно быть просто.