У меня есть балансировщик нагрузки, который требует сертификат с определенной конфигурацией, к сожалению, те, кто создавал первые сертификаты, не задокументировали эту конфигурацию, и у меня есть только список команд, который также не является полным.
У меня есть эти два файла: example_ca.crt и пример.crt
И используя эту команду OpenSSL:
openssl x509 -in имя_файла.crt -text -noout
Вот его свойства (не относящуюся к делу информацию опущу):
example_ca.crt
Сертификат:
Данные:
Версия: 3 (0x2)
Серийный номер:
cb:0f:b8:78:38:9a:a9:да
Алгоритм подписи: sha256WithRSAEncryption
Эмитент: CN = example.org
Срок действия
Не раньше: 10 июня 10:33:06 2020 GMT
Не после : 17 мая 10:33:06 21:20 по Гринвичу
Тема: CN = example.org
Информация об открытом ключе субъекта:
Алгоритм открытого ключа: rsaEncryption
Открытый ключ RSA: (2048 бит)
Модуль:
[...]
Показатель: 65537 (0x10001)
Расширения X509v3:
Идентификатор ключа субъекта X509v3:
81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
Идентификатор ключа авторизации X509v3:
ID ключа:81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
Основные ограничения X509v3:
КА: ИСТИНА
Алгоритм подписи: sha256WithRSAEncryption
[...]
пример.crt
Сертификат:
Данные:
Версия: 3 (0x2)
Серийный номер:
80:1d:bb:9e:9f:2c:4e:ce
Алгоритм подписи: sha256WithRSAEncryption
Эмитент: CN = example.org
Срок действия
Не раньше: 10 июня 10:33:44 2020 GMT
Не после : 17 мая 10:33:44 21:20 по Гринвичу
Тема: CN = example.org
Информация об открытом ключе субъекта:
Алгоритм открытого ключа: rsaEncryption
Открытый ключ RSA: (2048 бит)
Модуль:
[...]
Показатель: 65537 (0x10001)
Расширения X509v3:
Использование расширенного ключа X509v3:
Аутентификация веб-клиента TLS, Аутентификация веб-сервера TLS
Идентификатор ключа авторизации X509v3:
ID ключа:81:FE:D0:6D:DE:0A:CC:10:1D:B3:74:EA:4B:C8:F3:43:37:B4:D1:FD
Идентификатор ключа субъекта X509v3:
B1:2C:74:04:EE:03:84:C9:F7:92:35:CE:6E:20:EF:C6:FE:B8:23:A7
Алгоритм подписи: sha256WithRSAEncryption
[...]
мне удалось воспроизвести example_ca.crt с этими командами и конфигурацией (срок действия не имеет значения):
openssl genrsa -out example_ca.key 2048
openssl req -new -x509 -days 365 -key example_ca.key -out example_ca.crt -config root.cnf
корень.cnf
# Конфигурация OpenSSL для Root CA
[требуется]
подсказка = нет
строка_маска = по умолчанию
биты по умолчанию = 2048
отличительное_имя = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
общее имя = example.org
[ x509_ext ]
расширенныйKeyUsage = клиентская аутентификация, серверная аутентификация
subjectKeyIdentifier = хэш
authorKeyIdentifier = идентификатор ключа
основные ограничения = CA: правда
Моя проблема возникает в этот момент, когда я не могу воспроизвести пример.crt, я перепробовал так много возможностей в сервер.cnf и openssl.cnf файл, и я не приближаюсь к желаемому результату.
Для последних шагов я использовал эти команды:
openssl genrsa -out пример.ключ 2048
openssl req -new -out example.csr -key example.key -config server.cnf
эхо 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
я пропущу содержание сервер.cnf потому что здесь мне нужна помощь. Но в основном я всегда скучаю по «Расширения X509v3» сессия пример.crt
Не стесняйтесь принудительно использовать пароль, если это необходимо, или исправить мою репликацию example_ca.crt Я просто объяснил основы.
ОБНОВИТЬ:
сервер.cnf
# Конфигурация OpenSSL для сертификата конечного объекта
[требуется]
подсказка = нет
строка_маска = по умолчанию
биты по умолчанию = 2048
отличительное_имя = req_distinguished_name
x509_extensions = x509_ext
[ req_distinguished_name ]
общее имя = example.org
[ x509_ext ]
keyUsage = критический, digitalSignature, keyAgreement
subjectAltName = @alt_names
Возможны несколько альтернативных имен
[alt_names]
DNS.1 = example.org
IP.1 = 127.0.0.1
# DNS.2 = altName.example.com