Self-signed certifikáty v Chrome

Michal Haták
May 15, 2017 · 2 min read

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)

Image for post
Image for post

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.

  1. 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

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store