2017-09-11 5 views
2

Ich folge this page, um mein SSL-Zertifikat zu erstellen.
Und ich habe openssl verwenden rootCA und Server-Zertifikate erstellen.chrome nicht vertrauen https und zeigen ERR_SSL_SERVER_CERT_BAD_FORMAT

Aber in Chrom zeigt es diese Seite. image here
Openssl Befehl ist durch diese folgen.

"[Apache install path]\bin" openssl genrsa -des3 -out rootCA.key 2048 
"[Apache install path]\bin" openssl req -x509 -new -nodes -key rootCA.key -sha256 -days 3560 -extensions v3_req -out rootCA.pem 

Country Name (2 letter code) [AU]:TW 
State or Province Name (full name) [Some-State]:Taiwan 
Locality Name (eg, city) []:Taipei 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:CR 
Organizational Unit Name (eg, section) []:IT section 
Common Name (eg, server FQDN or YOUR name) []:localhost 
Email Address []:[email protected] 

Und RootCA.pem auf OS Trusted-Zertifikat installieren (mein OS Windows 10)
Dann CSR generieren:

set OPENSSL_CONF=[Apache install path]\conf\openssl.cnf (This is apache default) 
openssl genrsa -out server.key 2048 

nur Allgemeiner Name unterscheidet sich von rootCA, das auf "html_12" gesetzt ist.

openssl req -new -key server.key -out server.csr 
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 500 -sha256 -extensions v3_req 

Und Apache Einstellung in httpd-ssl.conf:

SSLCertificateFile "D:/xampp/Apache2.2_win32/conf/server.crt" 
SSLCertificateKeyFile "D:/xampp/Apache2.2_win32/conf/server.key" 

Im httpd-vhosts.conf ist gleich:

<VirtualHost *:80> 
    DocumentRoot "E:/PHP_TEST" 
    ServerName html_12 
    ErrorLog "logs/html_12M-error.log" 
    CustomLog "logs/html_12M-access.log" common 
    SSLEngine on 
    SSLProtocol all -SSLv2 
    SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5 
    SSLCertificateFile "D:/xampp/Apache2.2_win32/conf/server.crt" 
    SSLCertificateKeyFile "D:/xampp/Apache2.2_win32/conf/server.key" 
    SSLCACertificateFile "D:/xampp/Apache2.2_win32/conf/rootCA.pem" 
</VirtualHost> 

dies geschieht nach dem Update Chrom auf 61,0 .3163.79, ich weiß nicht, ob das mit Chrom zu tun hat.

Bevor ich aktualisiere es nur zeigen "Ihre Verbindung ist nicht privat", kann ich auf "Fortschritt" klicken, um meine Arbeit fortzusetzen.

Ich setze auch chrome://flags/#allow-insecure-localhost, Erlaube ungültige Zertifikate für Ressourcen von localhost geladen. Aktivieren
Aber immer noch die gleiche Frage.

Kann ich sonst meinem Localhost-Zertifikat vertrauen?

Antwort

1

Ich habe diese Frage zu lösen.

Ich muss eine Datei v3.ext in der gleichen Wurzel mit openssl erstellen.

Dateiinhalt:

openssl req -new -newkey rsa:2048 -sha256 -days 3650 -nodes -x509 -keyout server.key -out server.crt -config v3.ext -extensions v3_req

Dann Dateien in Apache setzen:

[req] 
distinguished_name = req_distinguished_name 
x509_extensions = v3_req 
prompt = no 
[req_distinguished_name] 
C = TW 
ST = Taiwan 
L = Taipei 
O = CR 
OU = It 
CN = html_12 
[v3_req] 
keyUsage = keyEncipherment, dataEncipherment 
extendedKeyUsage = serverAuth 
subjectAltName = @alt_names 
[alt_names] 
DNS.1=html_12 

Dann Befehlszeile Schlüssel & crt Datei zu erzeugen, auszuführen.
Es funktioniert.

0

Wenn Sie die ursprüngliche .csr und privaten Schlüssel des Original-Zertifikat haben Sie es nur durch eine Änderung openssl.conf

Sie diese in die Datei lösen:

[alt_names] 
DNS.1=html_12 

...und Sie können das Zertifikat erneut generieren:

openssl x509 -signkey private.key -in request.csr -req -days 365 -out cert-newcert.cer 
Verwandte Themen