https://localhost/
Wer auf dem lokalen Rechner "mal schnell" auch SSL-Zugriffe ermöglichen möchte, dem stehen Dank aktueller Versionen der verschiedenen Browser einige Hürden im Weg. So akzeptiert Google Chrome kein "self-signed certificate" mehr. Auch der CN im Zertifikat reicht nicht mehr aus: Es wird ein "subject alternative name" erwartet.
Um Anderen meine Suche nach einer sauberen Lösung für dieses Problem zu ersparen, stelle ich folgendes Skript zur Verfügung:
#!/bin/bash # ca: generate key and certificate openssl req -new -x509 -keyout localhost-ca.key -out localhost-ca.cer -days 9999 -nodes -subj '/CN=localhost-ca' # merge key and certificate cat localhost-ca.key localhost-ca.cer >localhost-ca.pem # domain: generate key and certificate signing request openssl req -new -sha256 -nodes -newkey rsa -keyout localhost.key -out localhost.csr -subj "/CN=localhost" -config <( cat <<-EOF [ req ] default_bits = 2048 default_md = sha256 req_extensions = req_ext distinguished_name = dn [ dn ] [ req_ext ] basicConstraints=CA:FALSE keyUsage=digitalSignature,keyEncipherment extendedKeyUsage=serverAuth,clientAuth subjectAltName = @alt_names [alt_names] DNS.1 = localhost IP.1 = 127.0.0.1 EOF ) # check csr openssl req -text -noout -in localhost.csr # sign openssl x509 -req -sha256 -CA localhost-ca.pem -days 999 -CAcreateserial -CAserial localhost-ca.srl -in localhost.csr -out localhost.cer -extfile <( cat <<-EOF subjectAltName = @alt_names [alt_names] DNS.1 = localhost IP.1 = 127.0.0.1 EOF ) # check certificate openssl x509 -text -noout -in localhost.cer # merge key and certificate cat localhost.key localhost.cer >localhost.pem
Google Chrome akzeptiert localhost-ca.cer aus dem Zertifikatsspeicher des Systems. Bei Firefox kommt man nicht umhin das CA-Zertifikat in den proprietären Zertifikatsspeicher zu importieren.