2010-09-16 31 views

Odpowiedz

22

Łatwo jest wyodrębnić certyfikaty bezpośrednio za pomocą keytool, nieco trudniej wyodrębnić klucz prywatny (chociaż można pisać programy, aby to zrobić). Proponuję użyć kombinacji keytool i openssl.

Jeśli twój magazyn kluczy jest w formacie PKCS # 12 (plik .p12), pomiń ten krok. Konwersja sklep JKS do sklepu PKCS12 wykorzystaniem keytool (potrzeba wersji z Java 6+)

keytool -importkeystore -srckeystore thekeystore.jks \ 
         -srcstoretype JKS \ 
         -destkeystore thekeystore.p12 \ 
         -deststoretype PKCS12 

Następnie rozpakuj certyfikatu przy użyciu OpenSSL:

openssl pkcs12 -in thekeystore.p12 -clcerts -nokeys -out servercert.pem 

wyodrębnić klucz prywatny:

umask 0077 
openssl pkcs12 -in thekeystore.p12 -nocerts -nodes -out serverkey.pem 
umask 0022 

Należy pamiętać, że ponieważ podczas wyodrębniania klucza prywatnego używana jest opcja -nodes, plik klucza prywatnego nie będzie chroniony (ponieważ nie może zawierać hasła do nas w stanie przez Apache Httpd), więc upewnij się, że nikt inny nie może go odczytać.

Następnie skonfiguruj Apache Httpd, używając SSLCertificateFile i SSLCertificateKeyFile, aby wskazywały odpowiednio plik certyfikatu i plik kluczy prywatnych.

+0

-srsstoretype powinien być -scrstoretype – jramoyo

+0

@jramoyo, dzięki za zauważenie tej literówki. (Możliwe, że byłbyś w stanie zasugerować edycję także bezpośrednio.) – Bruno

+0

Niestety servercert.pem jest pusty (0 bajtów). Jakaś wskazówka? –

Powiązane problemy