Пароль SSL при перезапуске apache2


33

Я устанавливаю подстановочный SSL-сертификат от Godaddy на Apache2. Каждый раз, когда сервер перезапускается, он запрашивает пароль для секретного ключа сертификата SSL.

Какой лучший способ устранить это препятствие для перезапусков, потому что, когда перезапуск ротации лог-файла происходит ночью, сервер не возвращается, и я получаю несчастный звонок от клиента утром, так как это общий сервер ,


5
Хотя на настоящий вопрос дан ответ, позвольте мне добавить: ротация лог-файла не требует перезапуска. Перезагрузка будет в порядке и не потребует от вас предоставления каких-либо учетных данных.
Ян Jungnickel

Спасибо, Ян, - хороший момент - я на самом деле не уверен, почему ломтик перезапускается - кажется, это происходит примерно 1 раз в неделю, мне нужно больше покопаться, чтобы понять, почему
ryw

Ответы:


28

Чтобы apache получал парольную фразу при каждом перезапуске, добавьте это в httpd.conf:

SSLPassPhraseDialog exec:/path/to/passphrase-file

в вашем файле-фразе:

#!/bin/sh
echo "passphrase"

и сделайте исполняемый файл-пароль:

chmod +x passphrase-file

1
работал для меня тоже! : D
отметка

5
Не забудьте установить надлежащие разрешения для сценария, содержащего ключевую фразу , в противном случае вы фактически удалили все средства защиты, которые вам дала эта пароль. (Вы также должны установить правильные разрешения для ключа, как описано в ответе Макса).
voretaq7

6
Как безопаснее хранить ключ (с парольной фразой) с 600 разрешениями, а этот сценарий с 700 разрешениями, чем просто хранить ключ без парольной фразы с 600 разрешениями, учитывая, что владельцем обоих файлов должен быть пользователь root, верно?
Зеланикс

5
Я согласен; это бессмысленная безопасность. Обязательно удалите ключевую фразу из ключа для автоматического перезапуска; но не думайте, что вы можете каким-либо образом возместить потерю безопасности, которую вы только что совершили. Это часто хороший компромисс, но это компромисс.
MadHatter поддерживает Монику

Для полноты ссылки на соответствующую документацию Apache: httpd.apache.org/docs/2.2/mod/mod_ssl.html#sslpassphrasedialog
alk

29

Вам необходимо удалить шифрование из вашего файла закрытого ключа, например:

openssl rsa -in server.key -out server.key.new

mv server.key.new server.key

Убедитесь, что новый файл ключа доступен для чтения только пользователю root - в противном случае любой пользователь, имеющий доступ к этому серверу в оболочке, сможет получить закрытый ключ и выдать себя за ваш сервер.

Чтобы сделать ключ доступным для чтения только пользователю root, выполните команду chmod 600 server.key.new перед заменой ключей.


я попробовал вашу идею, все еще получить вызов на sudo ./apache2 перезагрузка :(
ryw

4
+1, потому что это не «идея», это фактическая процедура
codehead

Я использовал термин «идея», потому что это не сработало для меня.
ryw

2
Каким образом фраза-пароль делает SSL-сертификат более безопасным, если вы можете легко удалить его, не запрашивая фразу-пароль? (или он просит у вас пароль?)
user2693017

3
@ user2693017 - Команда openssl, описанная здесь, запросит кодовую фразу зашифрованного закрытого ключа. Не зная пароль, удалить его не получится.
Майкл Паесольд
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.