Serverzertifikat stimmt nicht mit URL überein

363 Aufrufe
Gefragt 17, Nov 2017 in Linux von DerWoIsch
Bearbeitet 30 Mai von halfstone-2

Hey Leute,

ich erhalte von meinem Opera-Browser obigen Fehler, wenn ich mir mein selbst
erstelltes CA-Zertifikat näher anschaue. Was bedeutet das? Sorry, wenn ich so blöd
frage, aber der Browser will mir diesen Fehler partout nicht entfernen. Ich muss dazu
sagen, dass es sich bei dem CN im Client-Zertifikat um die IP des Servers handelt.

Folgende Ausgangssituation:

Ich habe mir den Apache-Webserver auf meinem Raspberry eingerichtet. Damit das
Ganze über eine SSL-Verbindung funktioniert, habe ich eine eigene CA samt
Zertifikaten erstellt. Die Konfiguration sieht so aus:

/etc/apache2/sites-available/000-default.conf

...
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName 192.168.0.3
    DocumentRoot /var/www/
    SSLEngine On
    SSLCertificateFile /etc/ssl/apache2/certs/cert-pub.pem
    SSLCertificateKeyFile /etc/ssl/apache2/certs/cert-key.pem
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combine
</VirtualHost>
...


/etc/apache2/sites-available/default-ssl.conf

...
        #   A self-signed (snakeoil) certificate can be created by installing
        #   the ssl-cert package. See
        #   /usr/share/doc/apache2/README.Debian.gz for more info.
        #   If both key and certificate are stored in the same file, only the
        #   SSLCertificateFile directive is needed.
        SSLCertificateFile    /etc/ssl/apache2/certs/cert-pub.pem
        SSLCertificateKeyFile /etc/ssl/apache2/certs/cert-key.pem

        #   Server Certificate Chain:
        #   Point SSLCertificateChainFile at a file containing the
        #   concatenation of PEM encoded CA certificates which form the
        #   certificate chain for the server certificate. Alternatively
        #   the referenced file can be the same as SSLCertificateFile
        #   when the CA certificates are directly appended to the server
        #   certificate for convinience.
        SSLCertificateChainFile /etc/ssl/apache2/certs/ca-root.pem

        #   Certificate Authority (CA):
        #   Set the CA certificate verification path where to find CA
        #   certificates for client authentication or alternatively one
        #   huge file containing all of them (file must be PEM encoded)
        #   Note: Inside SSLCACertificatePath you need hash symlinks
        #         to point to the certificate files. Use the provided
        #         Makefile to update the hash symlinks after changes.
        #SSLCACertificatePath /etc/ssl/certs/
        SSLCACertificateFile /etc/ssl/apache2/certs/ca-root.pem
...


/etc/apache2/ports.conf

...
<IfModule ssl_module>
    Listen 443
    NameVirtualHost *:443
</IfModule>
...


Soweit alles richtig. Nur gibt er mir halt diesen Fehler beim Einspielen des Zertifikats
aus. Andere Browser genauso. Demzufolge wird die Seite auch nicht verschlüsselt.

Ich habe gelesen, dass das wohl ein Standardverhalten bei selbst erstellten
Zertifikaten ist, da die Echtheit nicht verfiziert werden kann. Dadurch kann man diesen
Fehler wohl nicht unterbinden. Oder irre ich mich?

1 Antwort

0 Punkte
Beantwortet 30 Mai von draack Einsteiger (33 Punkte)
Hi,

Nein - es geht (noch) nicht darum, dass es ein selbstsigniertes Zertifikat ist. Der CN sollte dem Servernamen entsprechen, der auch im Browser aufgerufen wird. Wenn Du das Zertifikat auf den CN 192.160.0.3 ausgestellt hast, solltest Du es auch über https://192.168.0.3 aufrufen - und eben nicht über https://raspberrypi.fritz.box (der Servername kann bei Dir natürlich anders lauten).

Der CN wird aber zunehmend uninteressant (Chrome blockt das seit einem Jahr) - Ich würde Dir vorschlagen deshalb SANs (Subject Alt Names) zu benutzen. Dort kannst Du mehrere DNS-Namen und IPs angeben - z.B. bei OpenSSL:

IP.1=192.168.0.3

DNS.1=raspberrypi.fritz.box

Grüße,

Volker
...