Einrichten von SSL für Xampp Apache auf Mac OS X zu Adresse missing_subjectAltName auf Chrome

Ich versuche zum einrichten von SSL für Apache (Installation via XAMPP) auf Mac OS X Yosemite.

Lassen Sie uns davon ausgehen, dass ich einen lokalen Hostnamen mit der Bezeichnung „meine-local-host‘ schon eingerichtet. Ich folgte den Anweisungen hier, um den setup-certs den folgenden Befehl ausführen:

# 1. Create host key
sudo ssh-keygen -f my-local-host.key

# 2. Create SSL certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout my-local-host.key -out my-local-host.crt

# 3. Create nopass Host Key
sudo openssl rsa -in my-local-host.key -out my-local-host.nopass.key

Hinweis: ich habe das alles innerhalb der /Applications/XAMPP/xamppfiles/apache2/ssl Verzeichnis.

Danach habe ich ein virtual host Eintrag httpd-vhosts.conf.

<VirtualHost *:443>
    ServerName my-local-host
    DocumentRoot "/path/to/my-local-host/files"

    SSLEngine on
    SSLCertificateFile "/Applications/XAMPP/xamppfiles/apache2/ssl/my-local-host.crt"
    SSLCertificateKeyFile "/Applications/XAMPP/xamppfiles/apache2/ssl/my-local-host.key"

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
        SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory "/Applications/XAMPP/xamppfiles/cgi-bin">
        SSLOptions +StdEnvVars
    </Directory>

    <Directory "/path/to/my-local-host/files">
        ServerSignature Off
        Options Indexes FollowSymLinks Includes execCGI
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog "logs/my_local_host_log"
</VirtualHost>

Habe ich dann Hinzugefügt, das Zertifikat zum system-Schlüsselbund mit den folgenden:

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /Applications/XAMPP/xamppfiles/apache2/ssl/my-local-host.crt

Und dann habe ich Apache neu gestartet und versucht zu laden https://my-local-host in den Chrome-browser. Hier ist die Fehlermeldung, die ich erhielt:

This server could not prove that it is my-local-host; its security certificate is from [missing_subjectAltName].

Nach online-Suche scheint es, dass dies ein Problem im Zusammenhang mit Chrome fallen CommonName Unterstützung aus Chrom 58.

Fand ich das treffend mit dem Titel post: Fehlt [missing_subjectAltName] im ssl-Zertifikat (seit Chrome 58), die trug einen Befehl für die Erstellung einer konformen Zertifikat:

sudo openssl req -newkey rsa:2048 -x509 -nodes -keyout my-local-host.key -new -out my-local-host.crt -subj /CN=my-local-host -reqexts SAN -extensions SAN -config <(cat /System/Library/OpenSSL/openssl.cnf ; printf '[SAN]\nsubjectAltName=DNS:my-local-host') -sha256 -days 3650  

Leider, wenn ich diesen starte, bekomme ich die folgende Fehlermeldung:

error on line -1 of /dev/fd/63
80231:error:02001009:system library:fopen:Bad file descriptor:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/crypto/bio/bss_file.c:126:fopen('/dev/fd/63','rb')
80231:error:2006D002:BIO routines:BIO_new_file:system lib:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/crypto/bio/bss_file.c:131:
80231:error:0E078002:configuration file routines:DEF_LOAD:system lib:/SourceCache/OpenSSL098/OpenSSL098-52.40.1/src/crypto/conf/conf_def.c:199:

Gibt es einige andere, weniger umständliche Art und Weise kann ich schaffen, ein kompatibles Zertifikat, das behebt das Problem mit missing_subjectAltName auf Chrome?



One Reply
  1. 0

    Ich es gerade geschafft, zu finden, eine Lösung für dieses Problem aus diesem Beitrag: Befestigung Chrom 58+ [missing_subjectAltName] mit openssl bei der Verwendung von selbst signierten Zertifikaten. Vielen Dank an den Autor.

    So, hier ist was ich getan habe, funktionierte das:

    Zuerst werden wir löschen alle Dateien, die wir erstellt von früher.

    Zweitens, erstellen wir diese zwei Dateien in unserem Arbeitsverzeichnis /Applications/XAMPP/xamppfiles/apache2/ssl:

    Erste Datei – my-local-host.csr.cnf mit folgendem Inhalt:

    [req]
    default_bits = 2048
    prompt = no
    default_md = sha256
    distinguished_name = dn
    
    [dn]
    C=NG
    ST=Lagos
    L=Ikeja
    O=Local, LLC
    OU=Tech
    [email protected]
    CN = my-local-host
    

    Hinweis: stellen Sie sicher, dass alle Felder einen Wert haben, d.h. keine leeren Einträge.

    Zweite Datei – my-local-host.v3.ext mit folgendem Inhalt:

    authorityKeyIdentifier=keyid,issuer
    basicConstraints=CA:FALSE
    keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
    subjectAltName = @alt_names
    
    [alt_names]
    DNS.1 = localhost
    DNS.2 = my-local-host
    

    Drittens, führen Sie die folgenden Befehle:

    sudo openssl genrsa -des3 -out rootCA.key 2048
    sudo openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 1024 -out rootCA.pem
    openssl req -new -sha256 -nodes -out my-local-host.csr -newkey rsa:2048 -keyout my-local-host.key -config <( cat my-local-host.csr.cnf )
    sudo openssl x509 -req -in my-local-host.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out my-local-host.crt -days 500 -sha256 -extfile my-local-host.v3.ext
    

    Hinweis: ich habe versucht mit dem Dritten Befehl mit sudo, aber ich wurde immer Fehler aus irgendeinem Grund, und ich fand einige Informationen online, die vorgeschlagen, dass Sie dies ausführen, ohne es, und es funktionierte für mich.

    Nachdem Sie all das getan haben, führen Sie den folgenden Befehl:

    sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain my-local-host.crt
    

    Und den Apachen neu starten.

    Ich hoffe, dies hilft, lösen Sie Ihre SSL-Problem.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.