Использование сертификата CA при создании сертификата - PullRequest
0 голосов
/ 03 марта 2020

Я прочитал статью о том, как создать локальный сертификат SSL. Шаги в основном следующие:
1. создать пару ключей
openssl genrsa -des3 -out applicant.key 2048
2. создать запрос на подпись сертификата
openssl req -new -sha256 -nodes -out applicant.csr -key applicant.key -config someCert.csr.cnf
3. создать сертификат для кандидата с помощью ca.key (закрытый ключ) и cacert.pem (сертификат CA)
openssl x509 -req -in applicant.csr -CA cacert.pem -CAkey ca.key -CAcreateserial -out applicant.crt -days 500 -sha256 -extfile localdomain.v3.ext

У меня есть несколько вопросов относительно шагов.
а) Когда мы создаем ключ на шаге 1, это пара ключей или просто закрытый ключ?
б) При создании запроса на подпись сертификата на шаге 2 нужен ли нам открытый ключ c или частный ключ?
c) При создании сертификата из CA зачем нам нужен и закрытый ключ, и сертификат? Я считаю, что закрытый ключ CA используется для цифровой подписи, но какова цель сертификата CA?

1 Ответ

0 голосов
/ 03 марта 2020

Когда мы создаем ключ на шаге 1, это пара ключей или просто закрытый ключ?

applicant.key содержит как публичные c, так и частные элементы. Их можно увидеть с помощью openssl rsa -text -nout -in applicant.key или в более простой форме c с dumpasn1 или аналогичным.


При создании запроса на подпись сертификата на шаге 2 нам нужно публичный c ключ или закрытый ключ?

Оба. Вам нужен ключ publi c, так как он будет сертифицирован CA. Вам нужен закрытый ключ, когда вы подписываете CSR с этим, чтобы предоставить подтверждение владения ключом publi c.


Когда вы создаете сертификат из CA, зачем нам нужны оба закрытый ключ и сертификат CA?

Опять оба. Вам нужен закрытый ключ, чтобы подписать сертификат. Вам также нужен сертификат CA, чтобы CA мог извлечь из него информацию, используемую в процессе подписания.

Как минимум, это поле Subject сертификата CA, которое используется в качестве поля Issuer подписанного Certificate.

Другим примером является расширение AuthorityKeyIdentifier в сертификате CA, значение которого используется в качестве расширения SubjectKeyIdentfier в сертификате кандидата.

Однако CA могут свободно использовать все, что им нужно. Например, центры сертификации Microsoft будут проверять дату истечения срока действия сертификата центра сертификации и не будут выдавать заявителю сертификат, срок действия которого истекает после этой даты (он усекает срок действия сертификата). Для этого ему необходим доступ к сертификату CA.

...