Остановить apache от запроса пароля SSL при каждом перезапуске

Используя инструкции с этого сайта, но немного меняя их, я создал CA, используя -newca, скопировал cacert.pem на мой комп и импортирован как доверенный издатель в IE. Затем я сделал -newreq и -sign (примечание: я делаю /full/path/CA.sh -cmd и не sh CA.sh -cmd) и перенес сертификат и ключ в apache.

Я посетил сайт в IE и использую код.NET, и он выглядит доверенным, отлично (если я не напишу www. Впереди, что ожидается). Но каждый раз, когда я перезагружаю Apache, мне нужно ввести свой пароль для сайта (ов?).

Как я могу сделать так, чтобы мне не нужно было вводить пароль?

3 ответа

Решение

Вы хотите удалить фразу-пароль из ключевого файла. Запустите это:

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

Имейте в виду, что это означает, что любой, имеющий физический доступ к серверу, может скопировать (и, следовательно, злоупотребить) ключ.

В прошлом я был виновен в удалении ключевой фразы из моих собственных файлов ключей, потому что это самое простое решение, но с точки зрения безопасности, это не лучшая идея. Альтернативой является передача ключевой фразы в Apache. Вы можете сделать это с SSLPassPhraseDialog вариант в вашем httpd.conf (или другой файл, который он включает).

Если у вас есть только один сайт SSL на вашем сервере, простейшей формой этого будет:

# 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 есть дополнительные способы его использования, так что вы можете иметь либо один сценарий для всех ваших ключей, либо отдельный сценарий для каждого, или как вы хотите это сделать.

Чтобы удалить пароль из файла 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

Это создаст файл с именем "newcert.pem", который является файлом PEM без пароля. Как отмечалось в других ответах, вы должны подумать, является ли это хорошей идеей с точки зрения безопасности, прежде чем делать это.

Зацепил отсюда

Другие вопросы по тегам