我的博客

百度智能云免费 SSL 证书的申请与部署(nginx HTTPS 配置,http 请求重定向)

目录
  1. 申请
  2. 部署
  3. http 请求重定向到 https
  • 无法访问此网站
  • 百度云目前说每个用户可以申请三个免费 ssl 证书,每个证书有效期 1 年,每个证书只能在一个域名上使用。

    环境:

    我的服务器是百度云服务器,CentOS 系统,安装了 nginx,原来是 http,现在要部署 https

    申请

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

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

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

    因为我用的是 nginx,所以选 nginx。

    下载以后解压得到了一个 crt 文件是证书,一个 key 文件是对应的私钥。

    部署

    把 crt 文件和 key 文件放到 web 服务器上,要注意保护证书和私钥,同时要保证 nginx 有权限访问它们。

    首先要找到 nginx 配置文件。

    1
    2
    [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 配置文件

    1
    vi /etc/nginx/nginx.conf

    原来是

    改为

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    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 请求

    1
    2
    3
    4
    5
    6
    server {  
    listen 80;
    server_name www.xxxx.com;

    rewrite ^(.*)$ https://$host$1 permanent;
    }

    改完保存后,输入命令 nginx -s reload,再次重新载入配置,在访问 http,就可以直接重定向到 https 了。

    评论无需登录,可以匿名,欢迎评论!