Qualcuno può aiutarmi con la sintassi esatta?
È un processo in tre fasi e implica la modifica del openssl.cnf
file. Potresti essere in grado di farlo solo con le opzioni della riga di comando, ma non lo faccio in questo modo.
Trova il tuo openssl.cnf
file. Probabilmente si trova in /usr/lib/ssl/openssl.cnf
:
$ find /usr/lib -name openssl.cnf
/usr/lib/openssl.cnf
/usr/lib/openssh/openssl.cnf
/usr/lib/ssl/openssl.cnf
Sul mio sistema Debian , /usr/lib/ssl/openssl.cnf
viene utilizzato dal programma integrato openssl
. Sui sistemi Debian recenti si trova in/etc/ssl/openssl.cnf
È possibile determinare quale openssl.cnf
viene utilizzato aggiungendo un falso XXX
al file e vedere se si openssl
blocca.
Innanzitutto, modifica i req
parametri. Aggiungi una alternate_names
sezione a openssl.cnf
con i nomi che desideri utilizzare. Non ci sono alternate_names
sezioni esistenti , quindi non importa dove lo aggiungi.
[ alternate_names ]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
DNS.4 = ftp.example.com
Successivamente, aggiungi quanto segue alla sezione esistente [ v3_ca ]
. Cerca la stringa esatta [ v3_ca ]
:
subjectAltName = @alternate_names
È possibile modificare keyUsage
quanto segue in [ v3_ca ]
:
keyUsage = digitalSignature, keyEncipherment
digitalSignature
e keyEncipherment
sono tariffa standard per un certificato del server. Non preoccuparti nonRepudiation
. È una cosa inutile pensata da ragazzi / ragazze di informatica che volevano diventare avvocati. Non significa niente nel mondo legale.
Alla fine, IETF ( RFC 5280 ), i browser e le CA funzionano velocemente e liberamente, quindi probabilmente non importa quale sia l'utilizzo della chiave fornito.
In secondo luogo, modificare i parametri di firma. Trova questa riga nella CA_default
sezione:
# Extension copying option: use with caution.
# copy_extensions = copy
E modificalo in:
# Extension copying option: use with caution.
copy_extensions = copy
Ciò garantisce che le SAN vengano copiate nel certificato. Gli altri modi per copiare i nomi DNS sono interrotti.
Terzo, genera il tuo certificato autofirmato:
$ openssl genrsa -out private.key 3072
$ openssl req -new -x509 -key private.key -sha256 -out certificate.pem -days 730
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
...
Infine, esamina il certificato:
$ openssl x509 -in certificate.pem -text -noout
Certificate:
Data:
Version: 3 (0x2)
Serial Number: 9647297427330319047 (0x85e215e5869042c7)
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Validity
Not Before: Feb 1 05:23:05 2014 GMT
Not After : Feb 1 05:23:05 2016 GMT
Subject: C=US, ST=MD, L=Baltimore, O=Test CA, Limited, CN=Test CA/emailAddress=test@example.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (3072 bit)
Modulus:
00:e2:e9:0e:9a:b8:52:d4:91:cf:ed:33:53:8e:35:
...
d6:7d:ed:67:44:c3:65:38:5d:6c:94:e5:98:ab:8c:
72:1c:45:92:2c:88:a9:be:0b:f9
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Subject Key Identifier:
34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Authority Key Identifier:
keyid:34:66:39:7C:EC:8B:70:80:9E:6F:95:89:DB:B5:B9:B8:D8:F8:AF:A4
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage:
Digital Signature, Non Repudiation, Key Encipherment, Certificate Sign
X509v3 Subject Alternative Name:
DNS:example.com, DNS:www.example.com, DNS:mail.example.com, DNS:ftp.example.com
Signature Algorithm: sha256WithRSAEncryption
3b:28:fc:e3:b5:43:5a:d2:a0:b8:01:9b:fa:26:47:8e:5c:b7:
...
71:21:b9:1f:fa:30:19:8b:be:d2:19:5a:84:6c:81:82:95:ef:
8b:0a:bd:65:03:d1