Я только что получил от 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?
/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: //, вы сможете успешно подключиться!