Как настроить SSL и HTTPS для WordPress

Настраивал однажды на нескольких WordPress сайтах SSL сертификаты.

Сайты были размещены на выделенном сервере под управление Ubuntu, по этому первым делом я создал директорию для сертификатов и перешел в неё:

sudo mkdir /etc/apache2/ssl
cd /etc/apache2/ssl

Включим модуль SSL для Apache2 если он не включен:

sudo a2enmod ssl

Далее сгенерировал сертификат:

sudo openssl req -nodes -newkey rsa:2048 -keyout /etc/apache2/ssl/example.com.key -out /etc/apache2/ssl/example.com.csr

В процессе генерации пришлось ответить на несколько вопросов:
Country Name (2 letter code) [AU]: UA (код страны)
State or Province Name (full name) [Some-State]: Sumy (область)
Locality Name (eg, city) []: Romny (город)
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Private person (частное лицо или имя организации)
Organizational Unit Name (eg, section) []: (пусто или имя отдела организации)
Common Name (e.g. server FQDN or YOUR name) []: ixnfo.com (имя домена, без http и https)
Email Address []: test@ixnfo.com

Можно также подписать сгенерированный сертификат у какого нибудь доменного регистратора (это содержимое ixnfo.com.csr).
Процедура стоит дешево и после неё при подключении не будет высвечиваться сообщение что сертификат не подписан.
Либо установим подписанный бесплатный от Let’s Encrypt как я описывал в статье:
Установка Certbot в Ubuntu

Так как сайтов несколько, то в директории /etc/apache2/sites-enabled/ расположены конфигурационные файлы для каждого из них.
Выберу один из них и в самом конце после стандартной директивы:

<VirtualHost *:80> ...</VirtualHost>

добавим еще одну, но с 443 портом и укажем пути к сертификатам:

<VirtualHost *:443>
ServerAdmin admin@ixnfo.com
ServerName ixnfo.com
ServerAlias www.ixnfo.com
DocumentRoot /var/www/ixnfo.com/
        <Directory />
                Options -Indexes
                AllowOverride All
        </Directory>
        <Directory /var/www/ixnfo.com/>
                Options -Indexes
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/ixnfo_com.crt
SSLCertificateKeyFile /etc/apache2/ssl/ixnfo_com.key
SSLCertificateChainFile /etc/apache2/ssl/ixnfo_com.ca-bundle
ErrorLog /var/log/apache2/ixnfo_error-ssl.log
LogLevel warn
CustomLog /var/log/apache2/ixnfo_access-ssl.log combined
</VirtualHost>

После изменений проверим конфигурацию и перезапустим apache2:

sudo apachectl configtest
sudo apachectl -t
sudo service apache2 restart

Чтобы можно было зайти в WordPress и админку только по HTTPS в wp-config.php раскомментируем следующие параметры:

define('FORCE_SSL_LOGIN', true);
define('FORCE_SSL_ADMIN', true);

Также можно в панели администратора, в меню «Настройки» — «Общие» изменить адрес сайта с http:// на https://.
В robots.txt также укажем адрес сайта с https, например:

Host: https://ixnfo.com

Также в sitemap.xml должны быть ссылки с https.
В поисковиках нужно подать заявку на переиндексацию карты сайта, в Яндекс.Вебмастер подать заявку в «Переезд сайта» поставив галочку «Добавить HTTPS».
В Google Search Console нужно добавить этот же сайт с https, он будет индексироваться отдельно от http.

Все, теперь сайт можно открывать по https.

Смотрите также мои статьи:
Настройка HTTPS в Apache
Настройка SSL в Nginx
Перенаправление запросов на SSL

Оставьте комментарий

Добавить комментарий