Логотип Apache Software Foundation В этом посте я ношу некоторые из моих старых заметок о том, как собрать и установить SSL-сертификата на веб-сервер Apache 1.3 .* с mod_ssl. Для получения более подробной и всеобъемлющей ссылки на документы, которые можно найти на http://www.modssl.org/docs / `и` Человек странице OpenSSL. HTML-версия последней на http://www.openssl.org/docs/ .

Использование набора инструментов OpenSSL `` Вы можете создать закрытый ключ RSA, который впоследствии связать с CSR (Certificate Signing Request). Давайте посмотрим, как создать RSA ключ и, как назначить его на веб-сервер Apache. Следующий пример относится к распределению FreeBSD 6.0-RELEASE с Apache 1.3.33, но легко переносится на любой другой платформе:

  1. Первым шагом является создание закрытого ключа RSA, который 1024-битный RSA-ключ шифруется с помощью тройной-DES и хранится в a. Pem файл как ASCII-текст. Чтобы сделать более сложную шифрования и - как следствие - более безопасный ключ, мы будем использовать набор файлов, как случайные семена. Эти файлы, которые были ранее сжатые GZIP ``:
    $ openssl genrsa -des3 -rand file1:file2:file3:file4:file5 -out server.key 1024 Вам будет предложено ввести пароль. Важно, чтобы сохранить ваш пароль в надежном месте и по любой причине, если пароль потерян, ключ, сгенерированный будет совершенно бесполезно! Не стоит недооценивать эту рекомендацию, потому что такая ошибка может привести к выплате разумную сумму денег, чтобы создать новый сертификат из-за потери секретного ключа, сертификат орган, в который мы обратились (например: VeriSign ), Thawte и др..) требуют повторной уплаты суммы уже заплатили за освобождение предыдущего сертификата. Это сумма, которая превышает - когда я пишу - EURO 400,00 / год!
  2. Так как вы установили пароль для ключа таким образом генерируется каждый раз при перезагрузке Apache нужно будет ввести его или - лучше - Apache, чтобы пройти через простой скрипт Баш, который можно вызвать непосредственно в httpd.conf:
    SSLPassPhraseDialog exec:/usr/local/etc/apache/password.sh сценарий будет просто что-то вроде следующего:
    #!/bin/sh
    echo "password123"
    #!/bin/sh
    echo "password123"
    .
    Если вы не хотите использовать любой пароль (не рекомендуется!) Всегда есть возможность снять тройной-DES шифрование с ключом. Если вы выберете для аналогичного решения, по крайней мере убедиться, что ключ для чтения только корень: если другие смогли получить расшифрован закрытый ключ, сертификат будет аннулирован немедленно, связанные с ним, по понятным причинам. Тем не менее, вот как удалить шифрование с ключом:
    $ openssl rsa -in server.key -out server.pem

Теперь у нас есть закрытый ключ, мы можем сгенерировать CSR (Certificate Signing Request). КСО может быть использована двумя способами:

  • Отправляя КСО для сертификации, это будет проверить личность заявителя и выдать сертификат, подписанный
  • Использование КСО для создания личного заявления

Речь идет о второй гипотезе: случай, когда КСО используется, чтобы создать собственный сертификат или не признано ни сертификации. Удостоверения такого рода не дают никаких гарантий надежности от браузера, но технически эквивалентно фактические свидетельства, и, следовательно, обеспечить максимальную безопасность при передачи / приема данных во время навигации.

В процессе создания CSR будет предложено для информации через простой текст приглашения. Эта информация затем будет атрибуты сертификата X.509. Наиболее важным вкладом в отношении "Common Name (например, ваше имя)", который должен совпадать с полным доменным именем (Fully Qualified Domain Name) сервера, который соединит SSL защитой. Команду для создания КСО заключается в следующем:

$ openssl req -new -key server.key -out server.csr Без этого не должно быть самогенерирующего сертификат с помощью команды:

$ openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt сертификата полученного таким образом будет действителен в течение 10 лет.

Остается только теперь вносить изменения в конфигурацию веб-сервера Apache. В первую очередь следует определить, чтобы переместить каталог, в котором сертификат, в нашем случае:

/usr/local/apache/etc/ssl.crt/
/usr/local/apache/etc/ssl.key/

Как только переехали в сертификатами достаточно модифицировать файл httpd.conf так что, каждый раз при перезагрузке Apache, чтобы загрузить настройки для данного виртуального хоста также должны отвечать SSL. Вот довольно простой, который работает на стандартный порт 443:

# SSL Virtual Hosts
<IfDefine SSL>
<VirtualHost _default_:443>
ServerAdmin webmaster@agliardi.net
DocumentRoot /usr/local/apache/share/htdocs
ServerName www.agliardi.net
ScriptAlias /cgi-bin/ /usr/local/apache/share/htdocs/cgi-bin/
SSLEngine on
SSLCertificateFile /usr/local/apache/etc/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/etc/ssl.key/server.pem
SSLPassPhraseDialog exec:/usr/local/etc/apache/password.sh
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog /usr/local/apache/var/log/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
</IfDefine>
# SSL Virtual Hosts
<IfDefine SSL>
<VirtualHost _default_:443>
ServerAdmin webmaster@agliardi.net
DocumentRoot /usr/local/apache/share/htdocs
ServerName www.agliardi.net
ScriptAlias /cgi-bin/ /usr/local/apache/share/htdocs/cgi-bin/
SSLEngine on
SSLCertificateFile /usr/local/apache/etc/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/etc/ssl.key/server.pem
SSLPassPhraseDialog exec:/usr/local/etc/apache/password.sh
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
CustomLog /usr/local/apache/var/log/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
</IfDefine>
Эти инструкции причиной создания SSL Virtual Host называется www.agliardi.net и доступной на порт 443, IP-адрес по умолчанию веб-сервера.
Вы можете добавить все SSL виртуального хоста вам нужно, но необходимо соблюдать осторожность, чтобы указать другой порт для каждого из них! Если у вас есть полностью посвящен IP-адреса для каждого домена, которое происходит довольно редко.

Остается только теперь, когда перезапустить Apache и направьте свой ​​браузер на https://www.agliardi.net !

Отправить эту содержания:
  • del.icio.us
  • Google Bookmarks
  • Digg
  • Facebook
  • Technorati
  • MySpace
  • Twitter