Создаем SSL-сертификат для Apache |
Для поддержки https необходимо создать RSA сертификат.
# openssl genrsa -out /etc/ssl/private/server.key 1024 |
Если вы хотите чтобы ключ был зашифрован паролем, который прийдется вводить каждый раз при запуске httpd, сгенерируйте ключ, включив одну из следующих опций, задающих алгоритм шифрования: des, des3.
# openssl genrsa -des3 -out /etc/ssl/private/server.key 1024 |
Теперь cгенерируем CSR (Certificate Signing Request) для подписи нашего сертификата:
# openssl req -new -key /etc/ssl/private/server.key \ -out /etc/ssl/private/server.csr |
Обратите внимание на запрос Common Name, тут вы должны указать точное имя сервера без http://. Например: www.server.ru
Затем, вы можете отдать файл server.csr в Certifying Authority, где подпишут ваш ключ. Один из таких CA - Thawte Certification доступный по адресу http://www.thawte.com/. На текущий момент они подписывают только RSA ключи.
Вы так же, можете подписать ключ самостоятельно. Подпишем ключ на 1 год (365 дней):
# openssl x509 -req -days 365 -in /etc/ssl/private/server.csr \ -signkey /etc/ssl/private/server.key -out /etc/ssl/server.crt |
Когда /etc/ssl/server.crt и /etc/ssl/private/server.key готовы, вы можете запустить httpd с флагом -DSSL или же используя apachectl startssl, который заставит httpd включить поддержку https.
Проверим.
Для этого зайдем любым броузером поддерживающим
SSL на https://www.server.ru или с помощью команды:
# openssl s_client -connect www.server.ru:443 -state -debug |
Не забудьте включить флаг -DSSL в поле httpd_flags в файле /etc/rc.conf, для постоянного запуска httpd с поддержкой SSL.
Вы можете самостоятельно подписать ключ, например для проверки работоспособности вашего сервера, даже если собираетесь использовать сертификат подписанный другим Certifying Authority. И как только, Certifying Authority подписал вам сертификат, вы можете начать использовать его, заменив ваш самостоятельно подписанный /etc/ssl/server.crt на сертификат, подписанный вашим Certifying Authority, и затем перезапустить httpd(8).