为了开发微信公众号的回调,必须配置 https。我的服务器是百度云服务器,CentOS 系统,安装了 nginx,原来是 http,现在要部署 https
百度云目前说每个用户可以申请三个免费 ssl 证书,每个证书有效期 1 年,每个证书只能在一个域名上使用。
申请
申请还是比较方便的,填写基本信息,在百度云购买的域名可以自动设置 dns 验证,然后没多长时间就发下来了。
下载证书需要设置一个四位数字的密码,用于解压压缩包。
因为我用的是 nginx,所以选 nginx。
下载以后解压得到了一个 crt 文件是证书,一个 key 文件是对应的私钥。
部署
把 crt 文件和 key 文件放到 web 服务器上,要注意保护证书和私钥,同时要保证 nginx 有权限访问它们。
首先要找到 nginx 配置文件。
[root@instance-z85mlgpk ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz /usr/share/man/man3/nginx.3pm.gz
配置文件在 /etc/nginx/nginx.conf
,编辑 nginx 配置文件
vi /etc/nginx/nginx.conf
原来是
改为
server {
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name xuemiyixin.com;
ssl_certificate crts/xuemiyixin.com.crt;
ssl_certificate_key crts/xuemiyixin.com.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# 后面还有其他内容,不用修改 .....
改完保存后,输入命令 nginx -s reload
,因为我是 nginx 已经在运行了,如果你的 nginx 未在运行可以直接输入 nginx
启动 nginx。
如果没报错就配置成功了。
http 请求重定向到 https
但是这是你用原来的链接访问的时候会得到错误:
无法访问此网站
xxxxx.com 拒绝了我们的连接请求。
请试试以下办法:
- 检查网络连接
- 检查代理服务器和防火墙
ERR_CONNECTION_REFUSED
因为这是 80 端口已经不再开放了,你得把网址前面的 http 改成 https 才能访问到(端口 443)
所以为了用户体验可以把 80 端口的 http 请求重定为 https 请求
server {
listen 80;
server_name www.xxxx.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
改完保存后,输入命令 nginx -s reload
,再次重新载入配置,在访问 http,就可以直接重定向到 https 了。
欢迎来我的博客: https://codeplot.top/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。