Я пытаюсь собрать цепочку сертификатов. У меня есть закрытый ключ ( privatekey.pem
) и CSR ( csr.pem
), которые я отправил в Центр сертификации/CA.
Я взял сертификат CA и поместил его содержимое в файл ( ca.crt
). Он ca.crt
начинается со -----BEGIN CERTIFICATE-----
строки, а затем идет хэш. Мне все еще нужна цепочка сертификатов, и я смотрю на пример цепочки сертификатов здесьhttp://docs.aws.amazon.com/IAM/latest/UserGuide/InstallCert.html#SampleCert
Я предполагаю, что то, что у меня есть в это privatekey.pem
корневой сертификат (правильно?) и ca.crt
промежуточный сертификат 1 в цепочке образцов в этой ссылке. Если это так, как/где мне получить другой промежуточный сертификат? Если я неправильно понимаю, что или как мне получить/сгенерировать заказ?
решение1
Кажется, вы тут смешиваете несколько аспектов. Что вам нужно для получения конечного результата, так это
- ваш личный ключ
- корневой сертификат, который одинаков для всех, использующих один и тот же CA (кажется, это ваш ca.crt)
- а/некоторые промежуточные сертификаты, обычно находящиеся на сайте центра сертификации
- результат представленного CSR, который затем является вашим сертификатом.
2-4 составляют цепочку сертификатов.
решение2
Адрон,
privatekey.pem — это закрытый ключ для сертификата, который вы запросили у центра сертификации.
Корневой сертификат центра сертификации будет сертификатом из верхней части конкретной PKI, выдавшей ваш сертификат, и будет самоподписанным сертификатом.
сертификаты промежуточных центров сертификации поступают из подчиненных центров сертификации, расположенных ниже корневого центра сертификации.
например, example.com имеет корневой CA с именем exampleRootCA и подчиненный CA с именем exampleSubCA.
exampleSubCA выдает вам SSL-сертификат AdronSSL
Ваша цепочка сертификатов будет выглядеть следующим образом: AdronSSL -> exampleSubCA -> exampleRootCA
надеюсь это поможет
решение3
Команды 1–5 ниже помогут создать цепочку сертификатов.
Команда для создания закрытого ключа RootCA и самоподписанного сертификата
openssl req -new -nodes -newkey rsa:2048 -sha256 -days 100 -keyout rootPrivateKey.key -x509 -out rootCACertificate.pem
Примечание: Команда для преобразования сертификата RootCA из формата .crt в .pem
openssl x509 -outform pem -in rootCACertificate.pem -out rootCACertificate.crt
Команда для создания закрытого ключа промежуточного центра сертификации и запроса на подпись сертификата
openssl req -new -nodes -newkey rsa:2048 -keyout промежуточныйCAPrivateKey.key -out промежуточныйCACertificateSignRequest.csr
Команда для создания сертификата промежуточного центра сертификации, подписанного RootCA
openssl x509 -req -sha256 -days 100 -in промежуточныйCACertificateSignRequest.csr -CA rootCACertificate.pem -CAkey rootPrivateKey.key -CAcreateserial -extfile domain.ext -out промежуточныйCACertificate.crt
Содержимое domain.ext представлено ниже:
subjectKeyIdentifier = hash authorityKeyIdentifier = keyid:always,issuer basicConstraints = critical, CA:true keyUsage = critical, digitalSignature, cRLSign, keyCertSign
Команда для создания закрытого ключа сервера и подписания запроса
openssl req -new -nodes -newkey rsa:2048 -keyout serverPrivateKey.key -out serverSignRequest.csr
Команда для создания сертификата сервера, подписанного IntermediateCA
openssl x509 -req -sha256 -days 100 -in serverSignRequest.csr -CA промежуточныйCACertificate.crt -CAkey промежуточныйCAPrivateKey.key -CAcreateserial -extfile domain.ext -out serverCertificate.crt
Содержимое domain.ext представлено ниже:
basicConstraints = CA:FALSE keyUsage = nonRepudiation, digitalSignature, keyEncipherment subjectAltName = @alt_names [ alt_names ] DNS.1 = localhost
Примечание: Команда для преобразования закрытого ключа сервера из формата .key в формат .PEM.
openssl rsa -in serverPrivateKey.key -out serverPrivateKey.pem
Здесь корневой CA является самоподписанным. Поэтому браузеры его не распознают. Чтобы браузер его распознал, откройте IE ->Сервис->Свойства обозревателя ->Содержимое -> Импорт корневого CA в раздел доверенных центров сертификации и промежуточного CA в раздел промежуточных центров сертификации.
Сертификат сервера и закрытый ключ сервера хранятся на сервере, на котором вы обслуживаете веб-страницы.
После того, как вы запросите веб-страницы, вы увидите, что сертификат сервера проверяется по цепочке сертификатов.