2015-03-05 3 views
2

У меня есть закрытый ключ (my_ca.key) и открытый ключ (my_cert.crt), который подписан DigiCert. Теперь я хочу создать RA (регистрационный центр) и подписать его своим личным ключом. Вот как я пытался это сделать. Но когда я пытаюсь экспортировать закрытый и открытый ключ как файл pkcs12, я получаю ошибку, подобную этой ошибке не может получить сертификат локального эмитента, получающий цепочку. Не знаю, как это решить. Здесь my_cert.crt протягивается от DigiCert High Assurance CA-3 и один простиралась от DigiCert High Assurance EV Root CAНе удается получить сертификат локального эмитента во время цепочки обработки

SSL_SUBJ="/C=LK/ST=Colombo/L=Colombo/O=Nope/OU=mobile/CN=My root" 

openssl genrsa -out ra.key 4096 
openssl req -new -key ra.key -out ra.csr -subj "$SSL_SUBJ" 
openssl x509 -req -days 365 -in ra.csr -CA my_cert.pem -CAkey my_ca.pem - set_serial 76964474 -out ra.crt 
openssl rsa -in ra.key -text > ra_private.pem 
openssl x509 -in ra.crt -out ra_cert.pem 


openssl pkcs12 -export -out ca.p12 -inkey my_ca.pem -in my_cert.pem -name "cacert" -passout pass:password 
openssl pkcs12 -export -out ra.p12 -inkey ra_private.pem -in ra_cert.pem - chain -CAfile my_cert.pem -name "racert" -passout pass:password 

ответ

5

Вы обычно не может использовать сертификат, выданный общедоступным ЦС подписать ничего, кроме трафика клиента или сервера; вы не сможете использовать его для своего RA.

Сообщение об ошибке указывает на наличие проблемы с промежуточными сертификатами. Убедитесь, что вы добавили оба сертификата Digicert в файл my_cert.pem, прежде чем экспортировать его в pkcs12.

+0

Вы имеете в виду cat DigiCert.crt my_cert.crt> my_cert.crt, а не без ключевого слова -chain. Это работает. Но без -chain флаг что правильно? – GPrathap

+1

Ну, если вы попробуете эту команду cat, вы уничтожите файл my_cert.crt. Я бы сделал: cat DigiCert.crt my_cert.crt> my_cert_to_export.crt. Исправьте флаг -chain. У вас есть только это с вашим сертификатом ra в любом случае; см. мой ответ на некоторые дополнительные опасения по этому поводу. –

+0

Хорошо спасибо. На самом деле, я разрабатываю протокол SCEP (http://en.wikipedia.org/wiki/Simple_Certificate_Enrollment_Protocol) для mac os x. Поэтому в этом случае я должен предоставить CA и RA, поэтому, если я создаю самозаверяющий CA и RA, это будет правильный способ решить эту проблему? – GPrathap