Подтвердить что ты не робот

Как добавить терминологическое имя объекта в ssl certs?

Я использую openssl для создания самозаверяющих сертификатов. Я получаю эту ошибку с сертификатами, которые я создал: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: нет альтернативных имен объектов

Кто-нибудь знает, как указать "Альтернативное имя субъекта" при создании сертификата? Вот как я создаю хранилище ключей:

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

Чтобы сгенерировать ключ:

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

Пожалуйста, помогите! Спасибо!

4b9b3361

Ответ 1

Хотя этот вопрос был более конкретно посвящен IP-адресам в теме Alt. Имена, команды схожи (с использованием записей DNS для имени хоста и записей IP для IP-адресов).

Процитировать:

Если вы используете keytool, с Java 7, keytool имеет возможность включить альтернативное имя субъекта (см. таблицу в документации для -ext): вы можете использовать -ext san = dns: www.example.com или -ext Сан - = ф: 10.0.0.1

Обратите внимание, что для использования этой команды вам требуется только Java 7 keytool. После того, как вы подготовили хранилище ключей, он должен работать с предыдущими версиями Java.

(Остальная часть этого ответа также упоминает, как это сделать с OpenSSL, но, похоже, это не то, что вы используете.)

Ответ 2

Оба IP и DNS могут быть указаны с дополнительным аргументом keytool '-ext SAN = dns: abc.com, ip: 1.1.1.1'

Пример: keytool -genkeypair -keystore keystore -dname "CN = test, OU = Неизвестно, O = Неизвестно, L = Неизвестно, ST = Неизвестно, C = Неизвестно" -keypass keypwd -storepass storepass -keyalg RSA -alias unknown -ext SAN = dns: test.abc.com, IP: 1.1.1.1

Ответ 3

При генерации CSR можно снова указать атрибут -ext, чтобы он был вставлен в CSR

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

полный пример здесь: Как создать CSR с SAN с помощью keytool