【记录】nginx代理wordpress,获取ssl证书,配置ssl
tips:搭建网站后,站点 -> 设置 -> 重定向 因该也可以,但我 nginx 完成后才发现,暂时没研究,以后再说。
一、准备工作
1、宝塔面板
2、nginx
3、放行 wordPress 端口,如:宝塔安全防火墙、阿里云服务器安全规则
二、配置 nginx 代理
1、宝塔面板使用推荐的安装套件(LNMP),然后网站一键部署 wordPress,打开 nginx 配置文件(宝塔在软件商店找到 nginx,点击设置有),输入以下 server 区块,这个是监听指定端口,是否符合你的域名,符合则转发网站。
server {
listen 80; # 监听80端口
server_name xxx.xxx.xxx; # 你的域名
location / {
# WordPressIP访问地址
proxy_pass http://xxx.xxx.xxx:端口/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header User-Agent $http_user_agent;
}
}
# 代理https请求
server {
listen 443 ssl; # 监听443端口
server_name xxx.xxx.xxx; # 你的域名
# ssl证书地址
# pem文件的路径,后面是存放ssl证书的路径
ssl_certificate /www/server/nginx/cert/xxx.cer;
# key文件的路径,后面是存放ssl证书密钥的路径
ssl_certificate_key /www/server/nginx/cert/xxx.key;
# # ssl验证相关配置(阿里云上面抄的,仅供参考)
#缓存有效期
ssl_session_timeout 5m;
#加密算法
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#安全链接可选的加密协议
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#使用服务器端的首选算法
ssl_prefer_server_ciphers on;
location / {
# WordPressIP访问地址
proxy_pass http://xxx.xxx.xxx:端口/
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header User-Agent $http_user_agent;
# 防止https转http是图片、样式等资源出现已阻止mixed-content
add_header Content-Security-Policy upgrade-insecure-requests;
}
}
2、重启 nginx,nginx 配置完成,开始配置 wordPress,打开 wordPress 设置下的常规选项,找到 WordPress 地址(URL)和站点地址(URL)两个输入框,将里面的地址修改为你们的域名,如果后期无法登录,可以直接在数据库修改。

3、给网站添加公网 ip 访问端口

三、申请免费证书
使用 acme.sh 来生成 ssl 证书,免费,具体可看上方 github
步骤
1、打开 linux 终端,执行下方代码,注意后边的邮箱必须替换成你自己的,这个邮箱不能用,我试过。
curl https://get.acme.sh | sh -s email=my@example.com
2、执行以下代码验证并生成 ssl 证书 –nginx 后边的路径替换成你自己的 nginx 配置,多个域名可以用通配符如 *.xxx.xx
acme.sh --issue -d 你的域名 --nginx /etc/nginx/conf.d/example.com.conf
3、执行完后,最后几行是存放位置路径,将该路径下的.cer 文件和.key 文件复制到你自己中意的地方,但是 二 –> 1 的 server 区块里的 ssl_certificate 和 ssl_certificate_key 后的路径改为你刚才复制的路径
注意,nginx 配置 ssl 时,listen 端口 ssl 这种格式,ssl 必须加,负责无效
更多推荐



所有评论(0)