S / MIME для Mac и iOS

660
Nifle

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

Они должны быть вставлены в openssl.cnf
[usr_cert]
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
extendedKeyUsage = clientAuth, emailProtection
subjectAltName = email: move

Я добавил эти три строки [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

1 ответ на вопрос

0
dave_thompson_085

Мета: это 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-х годах, но на практике она почти никогда не работала, поэтому люди почти отказались от нее. ОТО Я сомневаюсь, что это повредит что-нибудь.

У https://www.cs.auckland.ac.nz/~pgut001/pubs/x509guide.txt есть несколько вещей, которые можно сказать как о nonRepudiation, так и об электронной почте: копировать против электронной почты: переместить. grawity 9 лет назад 0

Похожие вопросы