web-dev-qa-db-ja.com

再起動するたびにApacheがSSLパスワードを要求しないようにする

このサイトからの説明 を使用しますが、それらを少し変えるだけで、-newcaを使用してCAを作成し、cacert.pemをコンプにコピーして、IEで信頼できる発行者としてインポートしました。次に、-newreqと-signを実行し(注:/full/path/CA.sh -cmdではなくsh CA.sh -cmdを実行します)、証明書とキーをApacheに移動しました。

IEで.NETコードを使用してサイトにアクセスしましたが、信頼できると思われます(予想される前にwww。と書いていない限り)。しかし、Apacheを再起動するたびに、入力する必要がありますサイトのパスワード。

パスワードを入力する必要がないようにするにはどうすればよいですか?

41
user274

鍵ファイルからパスフレーズを削除したい。これを実行してください:

openssl rsa -in key.pem -out newkey.pem

これは、サーバーに物理的にアクセスできる人なら誰でもキーをコピーできる(したがって悪用できる)ことに注意してください。

64
Warner

パスフレーズを自分のキーファイルから削除することは、これまで最も簡単な解決策ですが、セキュリティ面で最善の方法ではないため、私は罪を犯していました。別の方法は、パスフレーズをApacheにフィードすることです。これは、httpd.conf(またはそれに含まれる別のファイル)の SSLPassPhraseDialog オプションを使用して行うことができます。

サーバーにSSLサイトが1つしかない場合、最も簡単な形式は次のとおりです。

# either of these will work
SSLPassPhraseDialog |/path/to/passphrase-script
SSLPassPhraseDialog exec:/path/to/passphrase-script

次に、次のような内容を含む/path/to/passphrase-scriptという非常に単純なスクリプトを作成します。

#!/bin/sh
echo "put the passphrase here"

起動時に、Apacheはこのスクリプトの出力を取得し、SSLキーのパスフレーズとして使用します。複数のSSLサイトがある場合、 SSLPassPhraseDialog には追加の使用方法があり、すべてのキーに対して単一のスクリプトを使用することも、それぞれに個別のスクリプトを使用することもできます、またはあなたがそれをやりたいのです。

24

PEMファイルからパスワードを削除するには、次の操作を実行できます。秘密鍵と公開証明書が同じファイルにある場合は、両方のコマンドが必要です。

# you'll be prompted for your passphrase one last time
openssl rsa -in mycert.pem -out newcert.pem
openssl x509 -in mycert.pem >> newcert.pem

これにより、パスワードのないPEMファイルである「newcert.pem」というファイルが作成されます。他の回答で述べたように、これを行う前に、セキュリティの観点からこれが適切かどうかを検討する必要があります。

引っ掛かり ここから

3
Brad Parks