--- title: Wordpress站点实现Https化 tags: - Https - SSL - WordPress - 泛域名 id: '109' categories: - - 建站探索 date: 2020-04-24 16:25:38 --- 获得证书 第一步:#`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不被代理 ``` AllowOverride AuthConfig ``` 在#`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 ``` ``` RewriteEngine on RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule (.*) https://%{SERVER_NAME}/$1 [R=301,L] ``` ``` #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 ``` ``` #...... SSLCertificateFile /etc/letsencrypt/live/limour.top-0001/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/limour.top-0001/privkey.pem #...... ```