WordPress站点的SSL连接

接上篇,我们已经使用自己申请的域名和云主机搭建好了基于Wordpress的个人站点,接下来我们再稍加改造,让我们的站点支持SSL连接。

向腾讯云申请使用期为1年的免费的SSL证书,并将证书下载到本地,证书提供商为TrustAsia。

官方的wordpress镜像默认是没有开启SSL的,需要执行a2enmod ssl命令开启SSL。但是如果使用docker exec进入到容器开启会遇到个问题,那就是每次容器重启时我们都得再进入到容器执行这条命令。为了避免这个问题,我们可以重新打包wordpress image,将执行这条命令的语句加入到image中。

新建文件Dockerfile,加入如下内容:

FROM wordpress   
RUN a2enmod ssl  
ENTRYPOINT ["docker-entrypoint.sh", "apache2-foreground"]

重新构建wordpress iamge:

docker build -t wordpress:v1 .    

复制正在运行的wordpress容器中的/etc/apache2文件夹中的所有文件到宿主机并停止正在运行的wordpress容器。

docker cp wordpress:/etc/apache2 /home/hui/wordpress/.   
docker stop wordpress
docker rm wordpress

配置Apache2的SSL/HTTPS

cd /home/hui/wordpress/apache2/   
cp sites-available/000-default.conf ./sites-enabled/
cp sites-available/default-ssl.conf ./sites-enabled/.
cd mods-enabled/
ln -s ../mods-available/socache_shmcb.load ./

将腾讯云上申请的SSL证书上传到服务器/home/hui/wordpress/apache2/sites-available目录下。

编辑/home/hui/wordpress/apache2/sites-enabled/default-ssl.conf文件,设置如下变量:

SSLCertificateFile        /etc/apache2/sites-available/2_www.gaohui.xyz.crt   
SSLCertificateKeyFile   /etc/apache2/sites-available/3_www.gaohui.xyz.key
SSLCertificateChainFile  /etc/apache2/sites-available/1_root_bundle.crt

编辑/home/hui/wordpress/apache2/sites-enabled/000-default.conf文件,强制跳转到HTTPS,增加如下内容:

ServerName www.gaohui.xyz       
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory "/var/www/html">
RewriteEngine   on
RewriteBase /
# FORCE HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</Directory>

重新运行wordpress容器:

docker run --name wordpress -d -p 80:80 -p 443:443 --link mysql -v    /home/hui/wordpress/app:/var/www/html -v    /home/hui/wordpress/apache2:/etc/apache2 -e WORDPRESS_DB_HOST=mysql:3306  wordpress:v1    

进入wordpress配置页面,安装插件“Easy HTTPS (SSL) Redirection”和”Really Simple SSL”。

设置站点的地址, 点击设置,修改下图中的地址:

此条目发表在docker分类目录。将固定链接加入收藏夹。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注