Я имею некоторое выполнение сервера Ubuntu 16.04 и настраиваю один vhost в apache2, который использует (или должен использовать), ssl.
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin myemail@mailhoster.xx
ServerName my.domain.name.de
DocumentRoot /var/www/mysslsite
<Directory /var/www/mysslsite>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mysite.ssl.error.log
CustomLog ${APACHE_LOG_DIR}/mysite.ssl.access.log combined
</VirtualHost>
</IfModule>
Я НЕ включил стандарт sites-available/default-ssl.conf.
Я могу теперь просмотреть к https://my.domain.name.de, и он просит в Firefox добавлять некоторое исключение, которое полностью нормально, если я не купил сертификата.
Но я задавался вопросом, где это настраивается, что это должно использовать сертификаты в/etc/apache2/ssl/каталоге. Я не могу найти конфигурацию, где ей говорят использовать это. Я все время думал, что это будет использовать что-то от/etc/ssl папки.
Или разве я, возможно, не активировал SSL правильно?
Согласно некоторым руководствам файлы сертификата SSL должны быть помещены под /etc/apache2/ssl/
, но они могут быть размещены в другую папку, в зависимости от Вашей собственной конфигурации.
Чтобы иметь доступ HTTPS к Вашему сайту, необходимо включить SSLEngine
и предоставьте действительный сертификат SSL.
С этой целью необходимо использовать инструмент командной строки OpenSSL для генерации собственного сертификата. Затем необходимо проверить сертификат в любом поставщике как как COMODO, StarSSL, локальный поставщик DNS, и т.д. Обычно они предлагают бесплатные сертификаты в течение нескольких месяцев. Относительно этого способа поколения сертификата можно посмотреть на эти руководства: для 14,04 и 16.04.
Также можно использовать программный инструмент, Давайте Зашифруем. От страницы Let's Encrypt Getting Started:
Для включения HTTPS на веб-сайте необходимо получить сертификат (тип файла) от Центра сертификации (CA). Давайте Зашифруем, Приблизительно. Для получения сертификата для домена веб-сайта от, Давайте Зашифруем, необходимо продемонстрировать управление доменом. С Позволяют нам Зашифровать, Вы делаете это программное обеспечение использования, которое использует протокол ВЫСШЕЙ ТОЧКИ, который обычно работает на Вашем веб-хосте.
Я предложил бы, чтобы Вы использовали, Давайте Зашифруем на данном этапе. Поэтому давайте начнем.
1-й - установка Позволяют нам Зашифровать:
sudo apt install python-letsencrypt-apache
2-й - генерируют сертификат. Для генерации сертификата SSL, совместимого с Apache, просто введите: letsencrypt --apache
. Эта команда запустит интерактивный диалог (где необходимо заполнить персональные данные сайта), и генерирует HTTPS.conf
файл на основе Вашего существующего HTTP.conf
файл.
Можно использовать и некоторые дополнительные параметры, например letsencrypt --apache certonly
сделает то же как выше, но не генерирует HTTPS.conf
файл.
Также можно поместить все необходимые параметры для предотвращения диалога. Согласно информации, предоставленной в вопросе, наша команда должна быть похожей:
sudo letsencrypt --apache certonly --rsa-key-size 4096 --email myemail@mailhoster.xx -d my.domain.name.de
Давайте предположим выбор последнего подхода. Команда генерирует все необходимые файлы сертификата, и они будут размещены в папку /etc/letsencrypt/archive/my.domain.name.de/
. Также эти файлы будут sym-связаны в папку /etc/letsencrypt/live/my.domain.name.de/
. Эти символьные ссылки будут обновлены автоматически в будущем, таким образом, мы будем использовать их.
3-й - настраивают (вручную) Ваш HTTPS VirtualHost. Согласно выше конфигурационного файла должен быть похожим:
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin myemail@mailhoster.xx
ServerName my.domain.name.de
DocumentRoot /var/www/mysslsite
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/my.domain.name.de/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/my.domain.name.de/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/my.domain.name.de/chain.pem
<Directory /var/www/mysslsite>
Options FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mysite.ssl.error.log
CustomLog ${APACHE_LOG_DIR}/mysite.ssl.access.log combined
</VirtualHost>
</IfModule>
4-й - a2ensite
новый VirtualHost, на всякий случай a2enmod ssl
и Apache перезапуска.Именно. Я надеюсь теперь, что у Вас будет доступ HTTPS к Вашему сайту.
5-й - возобновляют Ваш сертификат в будущее. С этой целью можно отредактировать Crontab корня и добавить задание, которое попытается letsencrypt renew
сертификаты, каждое воскресенье в 3:00, например. Ввести sudo crontab -e
и добавьте эту строку внизу:
0 3 * * 0 /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log 2>&1
Примечания:
letsencrypt
/ python-letsencrypt-apache
доступно для Ubuntu 16.04 и выше, для предыдущих версий существует certbot
который является почти тем же - из Руководств Ubuntu.
Если у Вас есть немного VirtualHosts, можно использовать этот синтаксис для генерации их сертификатов (все вместе):
sudo letsencrypt --apache certonly --rsa-key-size 4096 --email myemail@mailhoster.xx -d my.domain.name-1.de -d my.domain.name-2.de -d my.domain.name-3.de
certbot.eff.org - Автоматически включите HTTPS на своем веб-сайте с Certbot EFF, развертывание, Давайте Зашифруем сертификаты.
Вышеупомянутый ответ основан на этом, где больше подробной информации о конфигурации СПИДОБАРОГРАФА Apache предоставлено.
Читайте здесь, как и почему Вы должны updatete Ваш letsecrypt
/certbot
до 13-го февраля 2019: Не удалось обновить certbot на Бионической Ubuntu