Java keytoolを使用して「キーストア」を生成しました:
keytool -genkey -alias example.com -keyalg RSA -keystore example.com.keystore
次に、CSR(証明書署名要求)を生成しました。
keytool -certreq -keyalg RSA -alias example.com -file example.com.csr
-keystore example.com.keystore
次に、証明書を発行してテキストファイルに保存しましたexample.com.crt
この証明書をNginxで使用したいと思います。
証明書を/etc/ssl/certs/example.com.cert
に配置し、「キーストア」(秘密鍵が含まれていると思いますか?)を/etc/ssl/private/example.com.keystore
に配置しました。
次に、 Nginx、SSL、vhosts に従ってNginxを構成しました。しかし、Nginx構成ファイルをリロードすると、次のエラーメッセージが表示されます。
Sudo service nginx reload
Reloading nginx configuration: [emerg]: SSL_CTX_use_certificate_chain_file("/etc/ssl/certs/myssl.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib)
configuration file /etc/nginx/nginx.conf test failed
同じガイドに従い、openssl
を使用してSSL証明書を生成したところ、正常に機能しました。しかし、Java keytoolを使用すると、このエラーが発生します。
NginxでJava keytoolのSSL証明書とキーを使用するにはどうすればよいですか?
私の知る限り、Javaで書かれていないものだけでキーストアを使用することはできません。 keytool
でキーを抽出することもできません。
http://www.openssl.org/docs/HOWTO/keys.txt またはOpenVPNに含まれているeasy-rsa
-toolsのようなものを使用して、新しいキー/証明書を生成することをお勧めします-combo。デフォルトでは、nginxで読み取り可能な形式で生成されます。
キーストアからキーを抽出することが重要な場合は、 http://conshell.net/wiki/index.php/Keytool_to_OpenSSL_Conversion_tips にキーの抽出方法に関するガイドがあります。