Вопрос

Редактировать:Я не решил своих проблем, но перешел к новым и более захватывающим задачам.
Оставляю это здесь на случай, если у кого-нибудь есть и это поможет тому, кто наткнется на этот вопрос в будущем.

Привет, Я пытаюсь отправить зашифрованное электронное письмо с php в Outlook.Таким образом, мне нужно сгенерировать сертификат для импорта в Outlook.У меня не было проблем с генерацией набора ключей с помощью openssl и CA.pl скрипт, который поставляется с ним, но когда я пытаюсь запустить команду для создания файла PKCS12 для импорта в Outlook, он жалуется на отсутствие каталога "demoCA".Похоже, что этот каталог является частью openssl, и на него есть ссылка в конфигурации openssl...но я понятия не имею, где это находится.Я искал диск многими способами, от grep до spotlight (в os x, хотя я действительно не ожидал, что spotlight что-нибудь найдет), и ничего не могу придумать.

Команда, которую я пытался запустить, это:

$ openssl ca -cert newcert.pem -ss_cert newcert.pem
Using configuration from /sw/etc/ssl/openssl.cnf
./demoCA/private/cakey.pem: No such file or directory trying to load CA private key
19918:error:02001002:system library:fopen:No such file or directory:bss_file.c:245:fopen('./demoCA/private/cakey.pem','r')
19918:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:247:

Я немного новичок, когда дело доходит до шифрования / SSL, поэтому, возможно, я упускаю что-то глупое (я уверен, что это так, ха-ха).

Это было полезно?

Решение

Вы должны создать новый центр сертификации с помощью предоставленного скрипта, что проще, чем просто обрабатывать все параметры openssl.Вы можете сделать это с помощью openssl в комплекте с Cygwin внутри самой Windows или использовать ваш любимый дистрибутив Unix.Я покажу вам, как это сделать с помощью bash-скриптов (но perl-скрипты должны быть такими же).

$ ./CA.sh -newca

Это создает каталог demoCA с сертификатом CA внутри него.При вызове приведенной выше команды вам будет предложено ввести поля сертификата CA (CN, OU и т.д.) и кодовую фразу закрытого ключа CA.

Теперь вы можете создавать запросы сертификатов или сертификаты из запросов сертификатов.

$ ./CA.sh -newreq

При этом запрашиваются новые поля запроса сертификата и кодовая фраза для шифрования сгенерированного закрытого ключа.По умолчанию запрос остается в том же каталоге, что и CA.sh (newreq.pem).Важно, чтобы вы использовали в качестве CN (Общее имя) тот адрес электронной почты, который у вас есть.

Теперь вам нужно только подписать его, и у вас есть полноценный сертификат.

$ ./CA.sh -sign

Это сгенерирует newcert.pem, который является подписанным запросом сертификата.У вас есть сертификат, вам нужно только упаковать сертификат и закрытый ключ в файл PFX или P12, который распознает Microsoft CSP.

Затем скопируйте содержимое newreq.pem и newcert.pem в файл.

$ cat newreq.pem > keypair.pem
$ cat newcert.pem >> keypair.pem

А теперь сгенерируйте файл P12 с помощью оболочки openssl (на этот раз у нас нет помощи какого-либо скрипта).Он предложит вам ввести кодовую фразу, которую вы использовали при создании запроса, а затем пароль экспорта (для шифрования закрытого ключа внутри файла p12).

$ openssl pkcs12 -export -in keypair.pem  -out mykeypair.p12
Enter pass phrase for keypair.pem:
Enter Export Password:
Verifying - Enter Export Password:

Et voilà.У вас есть файл PKCS # 12, который вы можете дважды щелкнуть в Windows, импортировать его в свое хранилище ключей и использовать в качестве сертификата подписи почты (я не помню, достаточно ли параметров по умолчанию или вам нужно указать какие-то дополнительные атрибуты при создании сертификата, чтобы Outlook распознал его как сертификат подписи электронной почты).Вам также нужно будет импортировать сертификат CA как доверенный CA (скопируйте cacert.pem в cacert.cer, который находится внутри каталога demoCA, и дважды щелкните его для импорта).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top