WordPress站点实现Https化

发布于 2020-04-24  625 次阅读


获得证书

第一步:#yum install -y python3 && pip3 install certbot
安装完毕后,运行#certbot --help可以查看该工具的命令详情。

第二步,停止Apache:#systemctl stop httpd,同时开放433端口和80端口

第三步,运行#certbot certonly --standalone -d limour.top获取证书
如果失败,多试几次,一次一个域名比较容易成功,成功后有Congratulations显示

证书路径一般如下,记录下来:
"cert": "/etc/letsencrypt/live/limour.top/fullchain.pem"
"key": "/etc/letsencrypt/live/limour.top/privkey.pem"

后续运行#certbot certificates命令可再次查看获取到申请的证书及所在目录
证书有效期为三个月,到期前运行#certbot renew --force-renew可续期


配置SSL

第一步,进入httpd模块配置目录#cd /etc/httpd/conf.d
#ls -l检查是否有且只有一个ssl.conf文件,是则直接进入下一步
没有则可#yum -y install mod_ssl进行安装
如果yum显示模块已经存在,先#rm ssl.*清理可能的配置文件
通过#yum -y reinstall mod_ssl重新安装,直到出现且仅有一个ssl.conf

第二步,确保模块和配置引入:#nano /etc/httpd/conf/httpd.conf
Ctrl+W 查找IncludeOptional conf.d/*.conf确保其存在且未被注释
Ctrl+W 查找Include conf.modules.d/*.conf确保其存在且未被注释
Ctrl+X 退出nano 如果修改了文件,退出时,输入y回车,再次回车可保存

第三步,开启ssL:#nano ssl.conf,确保Listen 443 https存在且未被注释
修改SSLCertificateFile后的路径为获得证书"cert"的路径
修改SSLCertificateKeyFile后的路径为获得证书"key"的路径
保存退出,重启httpd #systemctl start httpd


配置WordPress

登录网站后台,在设置-常规中修改WordPress地址(URL)站点地址(URL)https://limour.top,如有图片,可修改背景图片链接,清空浏览器缓存,打开https://limour.top即可看到地址栏绿锁


其他无关设置

确保/etc/httpd/modules中有mod_proxy相关的一堆模块
确保/etc/httpd/conf.modules.d中有00-proxy.conf
/etc/httpd/conf.d目录下#nano zproxy.conf
输入ProxyPass /jsonrpc http://127.0.0.1:你的端口/jsonrpc
可转发aria2 Web控制台的连接,实现https控制aria2下载,保护token
其他反向代理可加如下项确保重定向不跳代理,不过测试时记得清浏览器缓存
ProxyPassReverse /jsonrpc http://127.0.0.1:你的端口/jsonrpc
ProxyPass /images !这句表示以/image开始的URL不被代理
ProxyPassMatch ^/images !这句也表示以/image开始的URL不被代理

<Directory "/var/www/html/AriaNg">
AllowOverride AuthConfig
</Directory>

在#nano /etc/httpd/conf/httpd.conf中添加上述项
在/var/www/html/AriaNg/目录中建立.htaccess文件
文件中键入以下内容:

AuthName "This page is private"
AuthType Basic
AuthUserFile /var/www/apasswd
require valid-user

同时运行#htpasswd -c /var/www/apasswd manger建立用户密码文件
#systemctl start httpd重启httpd即可实现对AriaNg目录的登录验证
再次提醒,测试时需要清理浏览器缓存,不然会出现奇怪的问题

#nano /var/www/html/nextcloud/config/config.php相关内容改为
'trusted_domains'=>array (0=>'47.102.216.189',1=>'limour.top',),
'overwrite.cli.url' => 'https://47.102.216.189/nextcloud',
'overwriteprotocol'=>'https'
可实现NextCloud的https化

#!/bin/bash
systemctl stop httpd
certbot renew --force-renew
systemctl start httpd
nano /etc/crontab
0 1 9 * * root /root/updatecert.sh > /root/upclog.txt
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L]
</IfModule>
#certbot certonly  -d "*.limour.top" --manual --preferred-challenges dns-01  --server https://acme-v02.api.letsencrypt.org/directory
>nslookup -q=TXT _acme-challenge.limour.top
<VirtualHost _default_:443>
#......
SSLCertificateFile /etc/letsencrypt/live/limour.top-0001/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/limour.top-0001/privkey.pem
#......
</VirtualHost>

<VirtualHost *:443>
ServerName limour.top
DocumentRoot /var/www/html
SSLEngine on
SSLProtocol all -SSLv2 -SSLV3
SSLCipherSuite HIGH:3DES:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/letsencrypt/live/limour.top/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/limour.top/privkey.pem
</VirtualHost>

医学生