1

Я пытался сгенерировать сертификаты S/MIME для своих устройств MacOS и iOS, но это не помогло. Я исследовал этот вопрос, и кажется, что keyUsage и extendedKeyUsage необходимы для его работы.

Они должны быть введены в openssl.cnf
[Usr_cert]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, emailProtection
SubjectAltName = электронная почта: перемещение

Я добавил эти три строки в [usr_cert] из /System/Library/OpenSSL/openssl.cnf

Как и в [CA_Default], он заявляет x509_extensions = usr_cert

Оттуда я выдаю следующие команды

openssl genrsa -aes256 -out ca.key 4096
openssl req -new -x509 -days 365 - ключ ca.key -out ca.crt
openssl genrsa -aes256 -out cert.key 4096
openssl req -new -key cert.key -out cert.csr
openssl x509 -req -days 365 -in cert.csr -CA ca.crt -CAkey ca.key -set_serial 00 -out cert.crt
openssl pkcs12 -export -in cert.crt -inkey cert.key -имя «email@address.com» -out cert.p12

После этого я получаю сертификаты CA и S/MIME, но когда я проверяю, есть ли расширения keyUsage и KeyUsage с:

openssl x509 -text -noout -in cert.crt

их там нет

Я редактирую файл openssl.cnf по умолчанию

Спасибо вам за вашу помощь

1 ответ1

0

Мета: это OpenSSL, но не Mac специально. Большинство вещей, для которых используется OpenSSL, связаны с безопасностью. Я бы предложил пометить openssl.

Многие параметры в конфигурационном файле OpenSSL, который по умолчанию зависит от платформы, например, указанное вами, но может быть переопределено, по умолчанию используются только утилитами req и ca, последняя из которых была создана именно для того, чтобы минимальный CA и выдача сертификатов. Основной задачей утилиты x509 является отображение, проверка и преобразование сертификатов; выдача сертификата с x509 -req -CA [-CAkey] является дополнением , что не все функции ca делает. В частности, он добавляет расширения, только если вы укажете в командной строке, а не в файле конфигурации. (И это не может переносить расширения из CSR вообще, хотя это, кажется, не проблема для вас.)

Решения: используйте ca с нужными настройками в файле конфигурации или используйте x509 -req -CA [-CAkey] с -extfile [-extensions] указывающим на файл или раздел файла с желаемыми расширениями - возможно, но не обязательно стандартный конфигурационный файл.

Кроме того: 365 дней - это довольно короткий срок действия сертификата CA. Я думаю, что вам нужна электронная почта SAN email:copy вместо move потому что один сертификат SMIME, который я использовал лично (пробная версия от Comodo), содержит мою электронную почту как в Subject, так и в SAN. Вы, вероятно, не нуждаетесь в nonRepudiation в (основном)KU; у моего сертификата его нет, и в целом идея о том, что подписи с открытыми ключами могут поддерживать отказ от авторства, была популярна еще в 1980-х годах, но на практике она почти никогда не работала, поэтому люди почти отказались от нее. ОТО Я сомневаюсь, что это повредит что-нибудь.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .