『中级篇』docker之wordpress容器SSL(番外篇)(78)
更新:HHH   时间:2023-1-7


原创文章,欢迎转载。转载请注明:转载自IT人故事会,谢谢!
原文链接地址:『中级篇』docker之wordpress容器SSL(番外篇)(78)

搞了2天终于搞定了,现在分享给大家。 apache2 容器内安装SSL实现wordpress证书安装。

前提

『中级篇』docker容器安装wordpress(37) 通过上边的方式已经安装了wordpress 和mysql ,可以正常的访问

准备工作

  • 进入容器

    docker exec -it wordpress的容器名称 /bin/bash
  • 开启SSL

    其中一个有结果就算通过了

    
    a1enmod ssl  或者  a2enmod ssl

* 容器安装vi 和 rz

apt-get update
#编辑文件使用
apt-get install vim
#从阿里或者腾讯云,华为云申请的证书上传
apt-get install lrzsz


* 证书上传

cd /etc/apache2
mkdir ssl
cd /etc/apache2/ssl
rz
#将华为云的三个证书上传到这个目录下

![](https://upload-images.jianshu.io/upload_images/11223715-cd70cc200fc9b0c5.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* 配置/etc/apache2/sites-enabled/default-ssl.conf

#如果没有的话从/sites-available里面复制过去
cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/default-ssl.conf
#修改文件
vi /etc/apache2/sites-enabled/default-ssl.conf

>按照我的进行修改。红色指的这几个修改下

![](https://upload-images.jianshu.io/upload_images/11223715-e00070dbb4b651a1.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* 检查配置

查看apache2/sites-enabled目录下是否存在default-ssl.conf,
查看apache2/mods-enabled目录下是否存在ssl.conf、ssl.load
如果存在,那就说明没问题了,如果不存在的话,从相应的sites-available目录下复制进去。

* http请求强制跳转到https

vi /etc/apache2/sites-available/000-default.conf

增加下面的配置

ServerAdmin webmaster@
DocumentRoot /var/www/html
<Directory "/var/www/html"> 
RewriteEngine   on
RewriteBase /

FORCE HTTPS

RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</Directory>

![](https://upload-images.jianshu.io/upload_images/11223715-32fbbc625d70a18e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 * 重启apache

service docker restart


### docker wordpress容器增加端口
* 找到wordpress容器

cd /var/lib/docker/containers

![](https://upload-images.jianshu.io/upload_images/11223715-ae45cfd88c1ea0bb.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* 为了防止你眼花弄错 先备份

cp config.v2.json config.v2.json_bak
cp hostconfig.json hostconfig.json_bak

![](https://upload-images.jianshu.io/upload_images/11223715-648cd4154d10d24b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* 停止docker

systemctl stop docker 或者 service docker stop


* 修改增加端口
>原来只有80 我增加了443

vi hostconfig.json


![](https://upload-images.jianshu.io/upload_images/11223715-cd9644b0d6d3f09b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

>原来只有80 我增加了443

vi config.v2.json


![](https://upload-images.jianshu.io/upload_images/11223715-332ed7d80fab4a59.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

* 保存之后启动docker
> 增加了443

systemctl start docker



![](https://upload-images.jianshu.io/upload_images/11223715-3f151e646e1bdc8a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 安全组中增加443

![](https://upload-images.jianshu.io/upload_images/11223715-f7dc826fa5c227a8.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 安装插件
>只需要这2个插件

![](https://upload-images.jianshu.io/upload_images/11223715-e338ebe7eb275d22.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 终于搞定
>输入:idig8.com自动跳转

![](https://upload-images.jianshu.io/upload_images/11223715-338387d705c598be.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

PS:在云主机多亏了备份,有几次一不小心都差点起不来了自己写的文章都白费了,一定要给机器备份后在弄,防止你的一个字母写错满盘皆输。参考https://peter.pudaite.net/2017/05/29/enabling-https-on-the-standard-wordpress-docker-image/ 老外写的很稳

![](http://upload-images.jianshu.io/upload_images/11223715-3407e1c7ac8d7935?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
返回云计算教程...