2012-07-03 3 views
1

Я пытаюсь использовать openSSL для настройки подключения https для своего приложения. Я запускаю базу данных Neo4j 1.2.2 с веб-сервером Trinidad 1.3.5, используя Rails 3.1 и ruby ​​1.9.OpenSSL Keystore Generation для Trinidad

У меня есть пробный сертификат Thawte, ca_cert.crt, их промежуточные и корневые сертификаты, ca_intermediate.crt и ca_root.crt соответственно, и мой собственный закрытый ключ ca_private.pem. Какую команду openssl мне нужно запустить, чтобы создать хранилище ключей, которое я могу указать в файле конфигурации trinidad.yaml моего приложения?

До сих пор «выглядит, ближе всего к праву», что я попытался это:

pkcs12 –export –in ca_cert.crt inkey ca_private.pem –out keystore.p12 –name tomcat 

, и это дает мне ошибку:

unable to load certificates 
6380:error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag:.\crypto\as 
n1\tasn_dec.c:1319: 
6380:error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error:.\ 
crypto\asn1\tasn_dec.c:381:Type=X509_CINF 
6380:error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested asn1 e 
rror:.\crypto\asn1\tasn_dec.c:751:Field=cert_info, Type=X509 
6380:error:0907400D:PEM routines:PEM_X509_INFO_read_bio:ASN1 lib:.\crypto\pem\pe 
m_info.c:258: 
error in pkcs12 

Он смотрит на меня, как OpenSSL не нравится формат, в котором у меня есть файлы, хотя я пробовал почти каждую комбинацию расширений .pem, .crt, .cer и .key, которые я могу придумать безрезультатно. Я новичок ССЛ полностью, так что я надеюсь, что я просто делаю что-то глупое и его легко исправить ...

Вот пример, который я пытался следовать: https://github.com/trinidad/trinidad/wiki/ssl-end-to-end-example

ответ

0

От this answer это кажется, что сертификаты Thawte отформатированы как PKCS # 7, а openssl pkcs12 -export команда expects PEM. Сертификат в PKCS # 7 может быть преобразован с использованием модифицированной версии команды из ранее связанного ответа.

$ openssl pkcs7 -in ca_cert.crt -print_certs | openssl x509 -outform PEM > ca_cert.pem 

Затем созданная вами команда создает кластеры PKCS # 12.

$ openssl pkcs12 –export –in ca_cert.pem -inkey ca_private.pem –out keystore.p12 –name tomcat 
+0

Большое вам спасибо! Это была именно проблема. Мне пришлось сохранить файл ca_cert.pem как ca_cert.p7b, а затем использовать «openssl pkcs7 -print_certs -in ca_cert.p7b -out ca_cert.pem» , чтобы преобразовать его. Как только он был преобразован, команда, которую я пыталась, работала фантастически! – MrSmiles