
Windows XP verwendet weiterhin das Snakeoil-Zertifikat, mit dem Ubuntu ausgeliefert wurde, trotz der Tatsache, dass es noch nie in einem virtuellen Host verwendet wurde.
Das Zertifikat befindet sich unter
/etc/ssl/certs/ssl-cert-snakeoil.pem
Ich bin mir nicht sicher, wo der Schlüssel ist. Der einzige, der mir plausibel erscheint, ist
/etc/ssl/private/ssl-cert-snakeoil.key
Ich glaube, das CA-Zertifikat ist bei
/etc/ssl/certs/ca-certificates.crt
aber ich bin einfach nicht sicher.
Bisher habe ich verschiedene OpenSSL-Befehle ausprobiert, wie zum Beispiel
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
Die Ausgabe davon war
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:
Mir gehen die Ideen aus. Ich bin für jede Hilfe sehr dankbar.
BEARBEITEN
Folgendes ist passiert:
Ich habe ein Zertifikat von GeoTrust gekauft, es installiert, den neuen virtuellen Host mit diesem Zertifikat aktiviert und Apache2 neu gestartet. Zu keinem Zeitpunkt während der Lebensdauer dieses Servers wurde jemals ein anderes Zertifikat verwendet, um den Webverkehr zu sichern, ganz zu schweigen vom Snakeoil-Zertifikat. Windows Vista und höher sowie OSX und alle Linux-Distributionen, die ich getestet habe, verwenden das richtige Zertifikat. Windows XP verwendet das Snakeoil-Zertifikat (im IE. Keine anderen Browser auf dieser VM). Hier sind einige Screenshots:
Antwort1
Angesichts der zusätzlichen Informationen, die Sie bereitgestellt haben, ist es für mich wahrscheinlich einfacher, mit einer anderen Antwort zu beginnen.
Es sieht nicht so aus, als ob dem Windows-Client das Dummy-Zertifikat „Snakeoil“ präsentiert wird. Das „Snakeoil“-Zertifikat wird mit dem Betreff generiert CN=Ubuntu
, während das Zertifikat, das der Windows-Box präsentiert wird, den Betreff hat CN=Production
. Wir sehen uns hier also ein drittes Zertifikat an.
Ich kann dasselbe Zertifikat sehen, wenn ich mich mit OpenSSLs mit Ihrem Server verbinde s_client
:
$ openssl s_client -connect portal.avendimedia.com:443
...
Certificate chain
0 s:/CN=Production
i:/CN=Production
...
Ich glaube, dass Sie Ihren Webserver so konfiguriert haben, dass er dieServernamenanzeigeErweiterung. Diese Erweiterung ist so konzipiert, dass ein Server unterschiedliche Zertifikate vorlegen kann, je nachdem, mit welchem Hostnamen der Client eine Verbindung herstellen möchte.
Dies funktioniert in den meisten modernen Browsern einwandfrei, jedoch nicht im Internet Explorer unter Windows-Versionen vor Vista. Zum jetzigen Zeitpunkt erscheint es höchst unwahrscheinlich, dass Microsoft die SSL-Bibliotheken unter Windows XP aktualisiert, um die SNI-Erweiterung zu unterstützen.
Wenn Ihre Site mit Internet Explorer unter XP funktionieren soll, prüfen Sie, ob Sie die Verweise auf diesen anderen SSL-Host, der unter derselben IP-Adresse ausgeführt wird, aus Ihrer Apache-Konfiguration entfernen können.
Antwort2
ssl-cert
Das „Snakeoil“-Zertifikat wird bei der Installation des Pakets automatisch generiert .
Es handelt sich um ein selbst signiertes Zertifikat, daher macht es wenig Sinn, es zu widerrufen. Sie können jedoch ganz einfach ein neues Zertifikat generieren:
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
Damit die Änderung wirksam wird, müssen Sie wahrscheinlich alle Dienste, die dieses Zertifikat verwendet haben, neu starten.
Was genau meinen Sie damit, wenn Sie sagen, dass Windows XP das Zertifikat weiterhin verwendet? Wenn Sie Ihrem Webbrowser auf diesem Computer gesagt haben, dass er dem von Ihrem Ubuntu-System generierten Snakeoil-Zertifikat vertrauen soll, sollte es ganz einfach sein, dieses Vertrauen in der Zertifikatsverwaltungsschnittstelle des Browsers zu widerrufen.