#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>