Добавить SSL в Dockerzied контейнер WordPress

#wordpress #apache #docker #ssl

#wordpress (wordpress ) #апач #docker #ssl #wordpress #apache

Вопрос:

У меня есть два контейнера Docker (WordPress и MySQL), и я установил Apache на сервере.

Итак, это выглядит примерно так; введите описание изображения здесь

Я пытаюсь добавить к нему SSL-сертификат с помощью Certbot.

Пока что мой файл конфигурации Apache выглядит следующим образом;

 <VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com

  <Proxy *>
     Order deny,allow
     Allow from all
  </Proxy>
  ProxyPreserveHost On
  ProxyPass / http://localhost:4567/
  ProxyPassReverse / http://localhost:4567/
  <Location />
     Order allow,deny
     Allow from all
  </Location>
</VirtualHost>
  

И я добавил эти две строки кода вwp-config.php;

 define('WP_HOME', 'http://example.com/');
define('WP_SITEURL', 'http://example.com/');
  

Когда я использую certbot --apache и выбираю домен для добавления SSL-сертификата, веб-сайт «тормозит»; нет CSS, нет JS, нет изображений, и я не могу получить доступ к администратору (чтобы попытаться изменить http на https с помощью поиска и замены);

Я попытался изменить http на https и добавить define('FORCE_SSL_ADMIN', true); в wp-config.php но это не сработало;

Кто-нибудь знает идеальный способ добавить SSL в докеризованный контейнер WordPress?

PS: я предпринял отчаянный шаг, чтобы изменить вручную всеhttp://example.com для https://example.com во всех таблицах базы данных. это не сработало, и это довольно глупый поступок, но отчаянные времена требуют отчаянных мер.

Комментарии:

1. Вы уверены, что ваш SSL-сертификат вообще работает правильно? После использования certbot вам необходимо связать сертификат let’s encrypt с вашей конфигурацией apache.

2. Certbot автоматически связал сертификат и добавил конфигурацию в файл ‘.conf’. И я вижу «блокировка безопасного подключения» рядом с именем домена в браузере, но со смешанной проблемой содержимого.

3. @AymenFezai Так это все-таки работает? Смешанный контент означает, что у вас есть ресурсы (изображения, видео, css, js и т.д.), Загруженные через http вместо https, поэтому вам нужно заставить их загружаться через https.

Ответ №1:

Это должен быть https, иначе ваши ресурсы будут загружаться с http, что приведет к смешанному контенту.

 define('WP_HOME', 'https://example.com/');
define('WP_SITEURL', 'https://example.com/);
  

Комментарии:

1. Я пробовал это после добавления ssl, но это не сработало.

Ответ №2:

Это файл конфигурации apache из bitnami images, возможно, это поможет:

 <VirtualHost *:80>
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>

<VirtualHost *:443>
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apps/wordpress/conf/certs/server.crt"
    SSLCertificateKeyFile "/opt/bitnami/apps/wordpress/conf/certs/server.key"
    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>