В сертификате openssl .p12 есть только одна из сцепленных данных сертификата.pem
У меня есть два сертификата.p12, которые я преобразовал в файлы.pem с помощью этой команды:
openssl pkcs12 -in cert1.p12 -out cert1.pem -nodes
openssl pkcs12 -in cert2.p12 -out cert2.pem -nodes
Затем я объединил два файла.pem в один файл.pem:
cat cert1.pem cert2.pem > combo.pem
Затем я преобразовал combo.pem
в сертификат.p12:
openssl pkcs12 -export -in combo.pem -out combo.p12
Но когда я пошел, чтобы проверить содержимое combo.p12
cert, он имел информацию только для cert1.pem:
keytool -v -list -keystore combo.p12
Я хочу combo.p12
cert, чтобы иметь обе.pem cert информацию. Что я делаю неправильно?
1 ответ
В целях иллюстрации давайте посмотрим, что происходит при повторении эксперимента с использованием цепочки сертификатов StackExchange.com. Я скачал их с веб-сайта и преобразовал их в PEM и объединил их в один файл PEM, так же, как вы это сделали. Это называется SE.pem
, Затем преобразовать их в PKCS#12
формат как это дает:
$ openssl pkcs12 -export -in SE.pem -out SE.p12
unable to load private key
140736004633472:error:0906D06C:PEM routines:PEM_read_bio:no start line:crypto/pem/pem_lib.c:686:Expecting: ANY PRIVATE KEY
Вы не упомянули об этом. Дополнительный параметр, необходимый для работы без закрытых ключей: -nokeys
, как это:
$ openssl pkcs12 -export -in SE.pem -out SE.p12 -nokeys
Enter Export Password:
Verifying - Enter Export Password:
Затем проверяя, что в результате .p12
В файле есть все:
$ openssl pkcs12 -info -in SE.p12 | grep subject=
Enter Import Password:
MAC:sha1 Iteration 2048
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Certificate bag
Certificate bag
subject=/C=US/ST=NY/L=New York/O=Stack Exchange, Inc./CN=*.stackexchange.com
subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
subject=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
Я не смог понять, почему keytool
не перечисляет сертификаты должным образом, эти два инструмента, кажется, ожидают различного содержимого для .p12
расслоение:
$ keytool -list -v -keystore SE.p12 -storetype pkcs12
Enter keystore password:
Keystore type: PKCS12
Keystore provider: SunJSSE
Your keystore contains 0 entries
Я мог бы на самом деле задать другой SO вопрос об этом сам:-). Это важно для вашей ситуации или просто еще один шаг проверки?