Перенаправьте http к https

У меня есть маленькая проблема, которую я не могу решить. Я выполняю Apache на Ubuntu 16.04 и после установки Позволения нам зашифровать сертификат, все работы за исключением этого...

Когда я ввожу mydomain.com, это переходит автоматически к https://mydomain.com, Когда я ввожу www.mydomain.com, это переходит автоматически к https://mydomain.com, Когда я ввожу mydomain.com, это переходит автоматически к https://mydomain.com, Когда я ввожу http://mydomain.com, это переходит автоматически к https://mydomain.com, НО Когда я ввожу http://www.mydomain.com, это остается в небезопасном http://www.mydomain.com...

Вот conf файлы...

nuc@nuc:~$ cat /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

и...

nuc@nuc:~$ cat /etc/apache2/sites-available/000-default-le-ssl.conf 
<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName mydomain.com
    ServerAlias www.mydomain.com

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/mydomain.com/privkey.pem
</VirtualHost>
</IfModule>

Любая справка значительно ценилась бы... :-)

0
задан 3 March 2019 в 10:28

2 ответа

Вместо того, чтобы использовать mod_rewrite, как насчет просто используют

Redirect / https://mydomain.com/
0
ответ дан 26 October 2019 в 02:59

Полный подробный ответ о том, как действовать, поскольку у меня были некоторые проблемы, хотя это очень просто:
После того, как вы получили 3 сертификата (private.key, certificate.crt, ca_bundle.crt) с Let's encrypt или https://www.sslforfree.com/ :

1/ загрузите их на удаленный сервер:
На удаленный сервер, к которому вы подключены (примечание: очевидно, вы можете выберите другое имя или даже местоположение вместо «сертификаты», просто будьте последовательны после):

mkdir /etc/ssl/certificates

На вашем компьютере (при условии, что вы распаковали 3 файла в папке sslforfree):

scp  ~/Downloads/sslforfree/* ubuntu@{replace with you server adress, if aws you can use the elastic IP}:/etc/ssl/certificates

В качестве альтернативы вы можете использовать какое-нибудь программное обеспечение для ftp, такое как filezilla или используйте rsync. Я просто думаю, что scp myfiles (скрытый) очень прост, если вы используете Ubuntu на своем компьютере.

2/ Отредактируйте файлы конфигурации, расположенные в /etc/apache2/sites-доступные на вашем сервере

cd /etc/apache2/sites-available && chmod 777 *

, затем используйте ваш любимый редактор, и вы можете заменить в 000-default.conf :

ServerAdmin webmaster@localhost
DocumentRoot /var/www/html

на (при условии, что ваш сайт dns это mysite.com):

ServerName http.mysite.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
Redirect permanent / https://mysite.com/

3/ Затем отредактируйте default-ssl.conf (бонус: 4-й элемент активирует фавиконку, расположенную в /var/www/html, что, очевидно, вам тоже нужно, если вы столкнулись с проблемой получения SSL, ctrl+shirt+R, чтобы принудительно загрузить кеш вашего браузера это позже):

ServerAdmin webmaster@localhost
ServerName mysite.com
DocumentRoot /var/www/html
AddType image/x-icon .ico

и включите SSL, сначала изменив путь для двух и удалив хэштег и изменив путь для третьего элемента:

SSLCertificateFile  /etc/ssl/certificates/certificate.crt
SSLCertificateKeyFile /etc/ssl/certificates/private.key

#   Server Certificate Chain:
#   Point SSLCertificateChainFile at a file containing the
#   concatenation of PEM encoded CA certificates which form the
#   certificate chain for the server certificate. Alternatively
#   the referenced file can be the same as SSLCertificateFile
#   when the CA certificates are directly appended to the server
#   certificate for convinience.
SSLCertificateChainFile /etc/ssl/certificates/ca_bundle.crt

4/ Включите модуль, default-ssl.conf и, наконец, перезагрузите конфигурацию для сервер apache2:

sudo a2enmod ssl &&
sudo a2ensite default-ssl.conf &&
sudo systemctl reload apache2

Не забудьте сбросить разрешения по умолчанию: chmod 644 *

Теперь ваш сайт защищен постоянным перенаправлением на https!

1
ответ дан 28 February 2020 в 06:01

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

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