Сегодня я попрошу кое-что гораздо менее техническое, чем обычно. Действительно, это более или менее риторический вопрос, но я хотел бы прочитать ваши советы по этой теме.
В моей повседневной работе мне приходится иметь дело с большим количеством веб-серверов и сертификатов SSL. На этой работе мне также приходится иметь дело с безопасностью, что не совсем просто, если вам нужен хороший баланс между безопасностью и пустой тратой времени.
Так вот, вопрос такой:
Есть ли у вас способ перезапустить веб-сервер NGinx / Apache / и т. Д. Без оператора перед консолью, чтобы ввести кодовую фразу сертификатов?
Я имею в виду, у меня есть решение просто удалить парольную фразу, чтобы иметь возможность автоматизировать процесс, но это звучит немного жутко, особенно если мой сервер скомпрометирован (во время работы все данные зашифрованы в противном случае), люди сможет получать и использовать сертификаты без какой-либо защиты парольной фразой.
Дополнительная информация: я не могу использовать скрипты, отличные от оригинального, предоставленного дистрибутивом, для запуска служб. В основном мы используем веб-серверы NGINX для обработки запросов внешнего интерфейса и SSL. Мы не хотим использовать Varnish или какой-либо другой оптимизатор SSL.
Помимо удаления парольной фразы из закрытого ключа:
openssl rsa -in server.key.org -out server.key
Вы можете использовать SSLPassPhraseDialog
директива:
SSLPassPhraseDialog exec:/usr/local/apache/sbin/pp-filter
Цель состоит в том, что эта внешняя программа сначала выполняет проверки безопасности, чтобы убедиться, что система не скомпрометирована злоумышленником, и только после успешного прохождения этих проверок она предоставляет парольную фразу.
Но вы должны предоставить эти проверки безопасности, чтобы определить, была ли система взломана. Который IMHO не более безопасен, чем удаление парольной фразы из ключа.
Если ваша система скомпрометирована и злоумышленник получил привилегии root, этот сценарий парольной фразы также может быть изменен.
Так что либо лучшая безопасность с парольной фразой, либо удобный перезапуск.
Я мог бы порекомендовать вам IBM HTTP Server, они используют kdb и спрятанные пароли для этой задачи. =) Недостаток в том, что у этой IHS не включен SNI. Поэтому вам понадобится много общедоступных IP-адресов или сертификатов SAN.