Ho impostato una piccola CA autofirmata per il mio ambiente di sviluppo. Vorrei creare molti certificati server diversi con proprietà diverse. Il mio approccio è creare una sezione di estensioni specifica per ciascun server. Ho un grosso openssl.cnf che contiene sezioni come questa:
[ server0_http ]
nsCertType = server
nsComment = "HTTP server0"
basicConstraints=CA:FALSE
extendedKeyUsage=serverAuth
subjectAltName=@server0_http_altnames
[ server0_http_altnames ]
URI.1 = https://server.domain.tld
URI.2 = http://server.domain.tld
IP.1 = 1.2.3.4
DNS.1 = server.doamin.tld
Quindi quando creo il mio csr usando openssl
uso i parametri -config myCustomOpenssl.cnf -reqexts server0_http
. Quando guardo la mia richiesta usando openssl req -text -noout -in myrequest.csr
tutto sembra perfetto.
Tuttavia, dopo aver firmato la richiesta, le sezioni "Utilizzo chiave estesa X509v3" e "Nome alternativo soggetto X509v3" scompaiono. Per porre rimedio a questo problema, ho inserito anche -extfile myCustomOpenssl.cnf -reqexts server0_http
i parametri per la chiamata di firma openssl
.
È questo il comportamento previsto? Ho sempre pensato che il solo file csr dovesse essere sufficiente per creare un certificato come richiesto, cioè con tutte le sue sezioni. Il modo in cui funziona il mio sistema in questo momento è che ottengo un certificato con sezioni mancanti. Per ottenere il certificato come lo desidero, devo fornire il file csr e la sezione corrispondente dal file di configurazione openssl che ho usato per creare la richiesta. Questo non è un problema per la mia piccola configurazione, ma diventa piuttosto disordinato se divento una CA più grande. Dovrebbe essere così o sto usando openssl in modo errato?