S/MIME для Mac и iOS
Я пытался сгенерировать сертификаты 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 -key 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 -name "email@address.com" -out cert.p12
После этого я получаю сертификаты CA и S/MIME, но когда я проверяю, есть ли расширения keyUsage и KeyUsage с:
openssl x509 -text -noout -in cert.crt
их там нет
Я редактирую файл openssl.cnf по умолчанию
Спасибо вам за вашу помощь
1 ответ
Мета: это OpenSSL, но не Mac специально. Большинство вещей, для которых используется OpenSSL, связаны с безопасностью. Я бы предложил пометить openssl.
Многие из параметров в конфигурационном файле OpenSSL, который по умолчанию зависит от платформы, как вы указываете, но может быть переопределен, по умолчанию используются только req
а также 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
в (основных) КУ; у моего сертификата его нет, и в целом идея о том, что подписи с открытыми ключами могут поддерживать отказ от авторства, была популярна еще в 1980-х годах, но на практике она почти никогда не работала, поэтому люди почти отказались от нее. ОТО Я сомневаюсь, что это повредит что-нибудь.