For everybody, who doesn′t like to edit the system-wide openssl.conf
, there′s a native openssl CLI option for adding the SANs to the .crt
from a .csr
. All you have to use is openssl′s -extfile
and -extensions
CLI parameters.
Here′s an example:
openssl x509 -req -days 3650 -in alice.csr -signkey aliceprivate.key -out alice.crt -extfile alice-csr.conf -extensions v3_req
This requires a alice-csr.conf file, which looks like this (fill in your appropriate data) and which was used to generate the .csr
with the command openssl req -new -key aliceprivate.key -out alice.csr -config alice-csr.conf
:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
prompt = no
[req_distinguished_name]
C = DE
ST = Thuringia
L = Erfurt
O = Alice Corp
OU = Team Foo
CN = server-alice
[v3_req]
keyUsage = keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = @alt_names
[alt_names]
DNS.1 = server-alice
DNS.2 = localhost
Keep in mind, that the -extensions v3_req
option corresponds to the [v3_req]
section in the file alice-csr.conf
, where you define you Subject Alternative Names aka the domains, which you want to issue your certificate to.
As I always appreciate fully comprehensible examples, where one could reproduce every step, I created an example project featuring Spring Boot microservices: https://github.com/jonashackt/spring-boot-rest-clientcertificates-docker-compose
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…