1

После этого вопроса мне удалось создать ряд сертификатов в иерархии корневых, промежуточных и конечных сертификатов:

# Create root RSA key pair of 1024 bits as well as a certificate signing request
openssl.exe req -new -newkey rsa:1024 -nodes -out caRoot.csr -keyout caRoot.key
# Create root certificate and store into .pem format
openssl x509 -trustout -signkey caRoot.key -days 365 -req -in caRoot.csr -out caRoot.pem
# Create intermediate certificate RSA key pair
openssl genrsa -out clientIntermediate.key 1024
# Create intermediate CSR
openssl req -new -key clientIntermediate.key -out clientIntermediate.csr
# Do the same thing for the end certificate
openssl req -new -keyout clientEnd.key -out clientEnd.csr -days 365
# Create a certificate request
openssl ca -policy anyPolicy -keyfile clientIntermediate.key -cert clientIntermediate.pem -out clientEnd.pem -infiles clientEnd.request
# Create and sing certificate
openssl ca -policy anyPolicy -keyfile clientIntermediate.key -cert clientIntermediate.pem -out caRoot.pem -infiles clientEnd.csr

Как создать цепочку сертификатов, как описано выше, и сохранить ее полностью в формате PKCS # 12 ?

1 ответ1

1

"Последний" в моем описании, privatekey и цепочка сертификатов, это PKCS # 12, как вы изначально просили. (PKCS # 7 обрабатывает случай ТОЛЬКО цепочки сертификатов.) Чтобы создать PKCS # 12 проще всего, используйте операцию командной строки pkcs12 с опцией -export . Есть несколько способов объединить параметры этой команды, но есть два простых способа для трехуровневого сценария, такого как ваш (root, mid, leaf):

openssl pkcs12 -export -in leafcert.pem -inkey leafkey.pem -certfile midcert.pem -CAfile rootcert.pem -chain -out my.p12 

cat leafcert.pem leafkey.pem midcert.pem rootcert.pem | openssl pkcs12 -export -out my.p12 

(замените ваши имена файлов). Полная информация на man-странице, доступной в любой системе Unix, где OpenSSL (полностью) установлен (полностью) или онлайн, по адресу https://www.openssl.org/docs/man1.0.2/apps/pkcs12.html (или выберите более раннюю версию из https://www.openssl.org/docs/manpages.html при необходимости).

Для полноты, если вам нужна / нужна цепочка без приватного ключа, это

openssl crl2pkcs7 -nocrl -certfile leafcert.pem -certfile midcert.pem -certfile rootcert.pem -out my.p7b 

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