为了开发微信公众号的回调,必须配置 https。我的服务器是百度云服务器,CentOS 系统,安装了 nginx,原来是 http,现在要部署 https

百度云目前说每个用户可以申请三个免费 ssl 证书,每个证书有效期 1 年,每个证书只能在一个域名上使用。

申请

申请还是比较方便的,填写基本信息,在百度云购买的域名可以自动设置 dns 验证,然后没多长时间就发下来了。

下载证书需要设置一个四位数字的密码,用于解压压缩包。

百度云控制台证书下载.png

因为我用的是 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/


sxwxs
292 声望21 粉丝

计算机专业学生