Как настроить SSL CRT на моем сервере Apache2?

5

Я только что получил от Godaddy сертификат SSL. Я загрузил файлы ... Но теперь я блуждаю там, где я должен их поместить. И еще что мне нужно настроить?

Причина, по которой я спрашиваю, потому что я получаю противоречивые способы настройки SSL на сервере Apache2.

Говорят, что использовать ssl.conf, но я нашел два на своем сервере:

/etc/apache2/mods-available/ssl.conf
/etc/apache2/mods-enabled/ssl.conf

Затем они говорят, что я должен добавить следующие инструкции:

SSLCertificateFile /path/to/your/certificate/file
SSLCertificateKeyFile /path/to/your/key/file
SSLCertificateChainFile /path/to/intermediate/bundle/file

Также они говорят, что это может быть не в ssl.conf, а в файле httpd.conf ...

Так оно и есть?

И если я использую ssl.conf , какой файл должен изменить?

Заранее благодарим за помощь.

UPDATE:

Вот моя конфигурация:

<VirtualHost 00.00.000.00:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin [email protected]
    DocumentRoot /var/www/example.com
    #   SSL Engine Switch:
    #   Enable/Disable SSL for this virtual host.
    SSLEngine on

    #   A self-signed (snakeoil) certificate can be created by installing
    #   the ssl-cert package. See
    #   /usr/share/doc/apache2.2-common/README.Debian.gz for more info.
    #   If both key and certificate are stored in the same file, only the
    #   SSLCertificateFile directive is needed.
    SSLCertificateFile    /etc/ssl/certs/example.crt
    SSLCertificateKeyFile /etc/ssl/private/example.key
    #SSLCertificateChainFile /etc/ssl/certs/gd_bundle.crt
</VirtualHost>

Кажется, что Godaddy cert. не переиздается Google Chrome по какой-то причине ...

Итак, что такое SSLCertificateChainFile?

    
задан jnbdz 18.10.2011 в 23:29
источник

1 ответ

6

Это зависит. Скорее всего, вы захотите добавить эти строки в файл VirtualHost. Я использую значение по умолчанию в качестве примера, но вы, вероятно, определите несколько VirtualHosts (они обычно находятся в каталоге /etc/apache2/site-available/ ).

Однако сначала вам необходимо установить SSL-сертификаты. Как правило, вы можете поместить файл .crt (или файл сертификата, если он не заканчивается на .crt) в каталоге /etc/ssl/certs/ . Затем скопируйте файл .key в каталог /etc/ssl/private/ . Убедитесь, что файл .key не имеет других допустимых разрешений, так как это может привести к эксплойту. Напоминаем, что это только места размещения сертификатов SSL по умолчанию, вы можете поместить их в любом месте , чтобы я видел, что некоторые установки используют /etc/apache2/ssl для сбрасывания файлов CRT и KEY. Это, опять же, полностью зависит от вас.

Для фактической настройки сайта SSL в Apache вы захотите скопировать VirtualHost сайта и отредактировать несколько строк, чтобы он корректно работал с SSL. В этом примере я продолжу использовать настройку по умолчанию, но заменим default на любой файл VirtualHost, который вы редактируете.

Итак, для сайта по умолчанию вы скопируете файл /etc/apache2/sites-available/default , например:

cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default-ssl

Затем отредактируйте новый файл default-ssl . Сначала измените первую строку, <VirtualHost ..., от :80 до :443 , чтобы она выглядела так:

<VirtualHost *:443>

* , вероятно, будет IP-адресом, для которого Apache прослушивает этот сайт. Он все равно может быть звездочкой, которая является подстановочным знаком, но это может вызвать проблемы при наличии нескольких сертификатов SSL на нескольких сайтах. Когда это будет обновлено в нижней части файла, чуть выше строки </VirtualHost> , добавьте следующее:

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/<yourssl>.crt
    SSLCertificateKeyFile /etc/ssl/private/<yourssl>.key
    SSLCertificateChainFile /etc/ssl/certs/<yourssl>.crt

После этого вы должны включить свой сайт. Выполните следующие команды, чтобы включить mod_ssl, новый VirtualHost, который вы создали, и перезапустите Apache.

sudo a2enmod ssl
sudo a2ensite default-ssl
sudo /etc/init.d/apache2 restart

Теперь, когда вы переходите на сайт через https: //, вы должны иметь возможность успешно подключиться!

    
ответ дан Marco Ceppi 19.10.2011 в 00:13
источник