Am un load balancer care necesită un certificat cu o anumită configurație, din păcate cei care au creat primele certificate nu au documentat această configurație și am doar o listă de comenzi care nici nu este completă.
Am aceste două fișiere: exemplu_ca.crt și exemplu.crt
Și folosind această comandă OpenSSL:
openssl x509 -in nume_fișier.crt -text -noout
Acestea sunt proprietățile sale (voi omite informații nerelevante):
exemplu_ca.crt
Certificat:
Date:
Versiune: 3 (0x2)
Număr de serie:
cb:0f:b8:78:38:9a:a9:da
Algoritm de semnătură: sha256WithRSAEncryption
Emitent: CN = example.org
Valabilitate
Nu înainte de: 10 iunie 10:33:06 2020 GMT
Nu după: 17 mai 10:33:06 2120 GMT
Subiect: CN = example.org
Informații despre cheia publică a subiectului:
Algoritmul cheii publice: rsaEncryption
Cheie publică RSA: (2048 biți)
Modul:
[...]
Exponent: 65537 (0x10001)
Extensii X509v3:
X509v3 Identificator cheie subiect:
81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
Identificatorul cheii de autoritate X509v3:
keyid:81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
Constrângeri de bază X509v3:
CA: ADEVĂRAT
Algoritm de semnătură: sha256WithRSAEncryption
[...]
exemplu.crt
Certificat:
Date:
Versiune: 3 (0x2)
Număr de serie:
80:1d:bb:9e:9f:2c:4e:ce
Algoritm de semnătură: sha256WithRSAEncryption
Emitent: CN = example.org
Valabilitate
Nu înainte de: 10 iunie 10:33:44 2020 GMT
Nu după: 17 mai 10:33:44 2120 GMT
Subiect: CN = example.org
Informații despre cheia publică a subiectului:
Algoritmul cheii publice: rsaEncryption
Cheie publică RSA: (2048 biți)
Modul:
[...]
Exponent: 65537 (0x10001)
Extensii X509v3:
Utilizarea cheii extinse X509v3:
Autentificare TLS Web Client, Autentificare TLS Web Server
Identificatorul cheii de autoritate X509v3:
keyid:81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
X509v3 Identificator cheie subiect:
B1:2C:74:04:EE:03:84:C9:F7:92:35:CE:6E:20:EF:C6:FE:B8:23:A7
Algoritm de semnătură: sha256WithRSAEncryption
[...]
Am reușit să replic exemplu_ca.crt cu aceste comenzi și configurație (data de expirare nu este relevantă):
openssl genrsa -out example_ca.key 2048
openssl req -new -x509 -days 365 -key example_ca.key -out example_ca.crt -config root.cnf
root.cnf
# Configurare OpenSSL pentru Root CA
[ solicitat ]
prompt = nu
string_mask = implicit
default_bits = 2048
nume_distins = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
commonName = example.org
[ x509_ext ]
extendedKeyUsage = clientAuth, serverAuth
subjectKeyIdentifier = hash
authorityKeyIdentifier = ID-cheie
basicConstraints=CA:true
Problema mea vine în acest moment când nu pot replica exemplu.crt, am încercat atât de multe posibilități în server.cnf și openssl.cnf fișier și nu mă apropii de rezultatul dorit.
Pentru ultimii pași am folosit aceste comenzi:
exemplu openssl genrsa -out.key 2048
openssl req -new -out example.csr -key example.key -config server.cnf
echo extendedKeyUsage = clientAuth > openssl.cnf
openssl x509 -req -in example.csr -out example.crt -signkey example.key -CA example_ca.crt -CAkey example_ca.key -CAcreateserial -days 365 -extfile openssl.cnf
Voi sări peste conținutul server.cnf pentru că acolo am nevoie de ajutor. Dar, practic, întotdeauna îmi lipsește „Extensii X509v3” sesiune de exemplu.crt
Simțiți-vă liber să forțați utilizarea unei parole dacă este necesar sau să corectați replicarea mea exemplu_ca.crt Am explicat pur și simplu elementele fundamentale.
ACTUALIZAȚI:
server.cnf
# Configurare OpenSSL pentru certificatul de entitate finală
[ solicitat ]
prompt = nu
string_mask = implicit
default_bits = 2048
nume_distins = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
commonName = example.org
[ x509_ext ]
keyUsage=critical,digitalSignature,keyAgreement
subiectAltName = @alt_names
Sunt posibile mai multe nume alternative
[alt_names]
DNS.1 = example.org
IP.1 = 127.0.0.1
# DNS.2 = altNume.example.com