Self-signed certifikáty v Chrome
Pro lokální vývoj používáme HTTPS a Chrome od 58+ (vydáno 19-04-2017) začal vyhazovat problém s certifikátem (NET::ERR_CERT_COMMON_NAME_INVALID)
Problém je, že commonName
pro identikaci nestačí a vyžaduje i subjectAltName
a vygenerovat certifikát, který toto splňuje, mi chvilku trvalo. Tady návod, pokud by se někomu hodilo, případně jako future reference.
Pozn.: existuje workaround, kdy se povolí fallback na
commonName
, ale ten prý ve verzi 65 přestane fungovat.
- vygenerování privátního klíče (pokud ho ještě nemáte)
$ openssl req -nodes -new -x509 -keyout local.dev.key
2. config (openssl.cnf — je jedno, kde bude uložen)
[ req ]
default_bits = 2048
prompt = no
default_md = sha256
req_extensions = req_ext
distinguished_name = dn[ dn ]
C = CZ
ST = ...
L = ...
O = ...
OU = ...
emailAddress = ...
CN = ...[ req_ext ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names[ alt_names ]
DNS.1 = localhost
IP.1 = 127.0.0.1
sekci [ dn ]
si vyplňte po svém. Důležitá je sekce [ alt_names ]
, kde se uvádí domény. U nás používáme jak doménu (localhost-pro backend), tak IP (127.0.0.1-pro frontend). Pokud bychom chtěli mít víc domén, pak je zapisujeme jako DNS.2, DNS.3 atd.
3) vygenerujeme CSR (Certificate Signing Request)
$ openssl req -key local.dev.key -new -out local.dev.csr -config openssl.cnf
4) ověříme CSR
$ openssl req -text -noout -verify -in local.dev.csr
ve výstupu musíme vidět
X509v3 Subject Alternative Name:
DNS:localhost, IP Address:127.0.0.1
5) vygenerujeme certifikát
openssl x509 -req -days 3650 \
-in local.dev.csr \
-signkey local.dev.key \
-out local.dev.crt \
-extensions req_ext \
-extfile openssl.cnf
A hotovo, teď už stačí jen certifikát naimportovat do systému a předhodit webserverům.
Linky:
- https://www.chromestatus.com/feature/4981025180483584
- http://stackoverflow.com/a/42917227/1649965
- https://www.workshopdigital.com/blog/self-signed-certificates-for-website-development/
- https://superuser.com/a/1202506