web-dev-qa-db-ja.com

Apache 2がSSL証明書のパスワードを要求しないようにする方法は?

SSL証明書をApacheに追加しました。問題は、Apacheがシステムの起動時に実行され、サーバーがオンになった後、Apacheが実行されるが実行されないことです。コンピューターのIPアドレスを入力すると、ブラウザーは接続を試行し続けます。回転する円が見えます。

次に、サーバーにアクセスして、Apache関連のすべてのプロセスを強制終了し、Sudo service Apache2 restartを実行します。 Sudoのため、スーパーユーザーのパスワードの入力を求められますが、入力すると、Apacheは.keyファイルのパスワードを要求します。私はそれを入れると、Apacheは問題なく動作します。 SSLも機能します。

では、Apacheを再起動するまで動作しないのはなぜですか?スタートアップごとにパスワードを入力したいからでしょうか?その場合、Xubuntuサーバーでどのようにすればよいですか?毎回入れる必要がないように作ることができますか?

3
John Scott

SSL証明書の秘密キーはパスワードで保護されているようです。これが本当に当てはまるかどうかをテストするには、コマンドhead -3 your.keyを使用してキーファイルの先頭を調べます。この秘密鍵は暗号化されています:

-----BEGIN RSA PRIVATE KEY-----
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,C251E8A1254B933D763703EE1C364AB7

このファイルは暗号化されていません:

-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAvbeWtO9nQP4cFFuhGrOM/WQ73oTQHU7mzZB9CaA3R2iwjDNz
wwlDtT9tfo0tCC2ib9STfeM6AYrdI3wauzCu7AV4CFGSMP3HLX8DJuk8zzbdQHHv

RSA秘密鍵からパスワードを削除するには、次のコマンドを使用します。

umask 077
mv your.key old-with-pass.key
openssl rsa -in old-with-pass.key -out your.key

umask 077コマンドは、新しいキーが過度に緩和されたアクセス許可で作成されないようにするために必要です。または、chmod 400 new.keyを使用してファイルのモードを手動で変更できます。キーの場所によっては、opensslmv、およびchmodコマンドの前にSudoを付ける必要があります。

6
Lekensteyn

@ -JamesSneeringerによる http://serverfault.com に関する回答。

過去に自分のキーファイルからパスフレーズを削除したことは有罪でした。これは最も簡単な解決策であるためですが、セキュリティに関しては最良のアイデアではありません。別の方法は、パスフレーズを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 で使用できる追加の方法があるため、すべてのキーに対して単一のスクリプトを使用するか、各キーに対して個別のスクリプトを使用するか、または必要に応じてそれをするために。

5
Abdullah