come aggiungere il nome del sobject al ssl certs?

Sto usando openssl per creare certificati autofirmati. Sto ottenendo questo errore con i certs che ho generato: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: nessun sobject con nomi alternativi presenti

Qualcuno sa come specificare “Nome alternativo sobject” durante la creazione di un certificato? Ecco come sto creando un keystore:

sudo $JAVA_HOME/bin/keytool -genkey -dname "CN=192.168.x.xxx, OU=I, O=I, L=T, ST=On, C=CA" -alias tomcat -validity 3650 -keyalg RSA -keystore /root/.keystore -keypass abcd -storepass abcd 

Per generare una chiave:

  openssl s_client -connect 192.168.x.xxx:8443 2>/dev/null 

Per favore aiuto! Grazie!

Sebbene questa domanda riguardasse in modo più specifico gli indirizzi IP in Oggetto Alt. Nomi, i comandi sono simili (utilizzando DNS voci DNS per un nome host e IP voci IP per gli indirizzi IP).

Per citare me stesso:

Se stai usando keytool , come da Java 7, keytool ha un’opzione per includere un Nome alternativo sobject (vedi la tabella nella documentazione per -ext): potresti usare -ext san = dns: http://www.example.com oppure – ext san = ip: 10.0.0.1

Nota che hai bisogno solo di keytool di Java 7 per usare questo comando. Una volta preparato il tuo keystore, dovrebbe funzionare con le versioni precedenti di Java.

(Il resto di questa risposta menziona anche come farlo con OpenSSL, ma non sembra essere quello che stai usando.)

Sia IP che DNS possono essere specificati con l’argomento aggiuntivo keytool -ext SAN=dns:abc.com,ip:1.1.1.1

Esempio:

 keytool -genkeypair -keystore  -dname "CN=test, OU=Unknown, O=Unknown, L=Unknown, ST=Unknown, C=Unknown" -keypass  -storepass  -keyalg RSA -alias unknown -ext SAN=dns:test.abc.com,ip:1.1.1.1 

Quando si genera CSR è ansible specificare nuovamente l’attributo -ext per farlo inserire nel CSR

 keytool -certreq -file test.csr -keystore test.jks -alias testAlias -ext SAN=dns:test.example.com 

esempio completo qui: Come creare CSR con SAN utilizzando keytool