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

Я только что получил от 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, какой файл я должен изменить?

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

ОБНОВЛЕНИЕ:

Вот мой конфиг:

<VirtualHost 00.00.000.00:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    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?

5
задан 20 October 2011 в 08:56

1 ответ

1120 Это зависит. Возможно, вы захотите добавить эти строки в файл VirtualHost. В качестве примера я буду использовать значение по умолчанию, но вы, вероятно, определите несколько виртуальных хостов (обычно они находятся в каталоге /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: //, вы сможете успешно подключиться!

0
ответ дан 20 October 2011 в 08:56

Другие вопросы по тегам:

Похожие вопросы: