欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Nginx 配置 Https 免费证书访问

程序员文章站 2022-07-09 20:11:45
配置HTTPS 现在做博客或者做网站没有 https 已经不行了,就记录一下我在腾讯云配置 https 的过程吧,非常简单,1个小时就可以了。 还涉及到 http 访问自动转发到 https 访问路径。同时把不带 www 的*域名转发到带 www 的二级域名上,有利于 SEO. 申请证书 不管是腾 ......

配置https

现在做博客或者做网站没有 https 已经不行了,就记录一下我在腾讯云配置 https 的过程吧,非常简单,1个小时就可以了。

还涉及到 http 访问自动转发到 https 访问路径。同时把不带 www 的*域名转发到带 www 的二级域名上,有利于 seo.

申请证书

不管是腾讯云还是阿里云都提供免费的证书使用,不过有效期是 1 年,到时候我们重新申请就可以了。我们以腾讯云为例子,申请证书。

Nginx 配置 Https 免费证书访问

然后验证一下 dns 记录就好了,如果域名是在使用腾讯云解析的话直接选用自动 dns 验证即可。

Nginx 配置 Https 免费证书访问

官方说法是申请证书需要10分钟-1天的时间,我大概就是十几分钟吧,很快就收到通知了。下载的证书包含 apache、nginx、tomcat、iis等服务器的配置文件。我们把 nginx 文件夹下的两个文件传到服务器就行了。

配置证书

我们在 etc/nginx/ 目录下新建 ssl 文件夹来存放证书。把 crt 证书文件和 key 私钥文件上传到这里。然后就可以配置 nginx 配置文件了。

我的配置文件放在 sites-enabled 文件夹里,我们删掉默认的文件新建一个,具体配置内容可以参考腾讯云的操作指导。

下面是我的配置文件

# 配置 http 访问时通过 301 转发到 https 上。
server{
    listen 80;
    server_name example.com www.example.com;
    return 301 https://www.example.com$request_uri;
}

# 证书部分内容配置,注意证书路径写对,其他地方照抄就行了
server {
    listen 443 ssl default_server;
    server_name www.example.com;
    ssl on;
    ssl_certificate /etc/nginx/ssl/1_www.example.com_bundle.crt;
    ssl_certificate_key /etc/nginx/ssl/2_www.example.com.key;
    ssl_session_timeout 5m;
    ssl_protocols tlsv1 tlsv1.1 tlsv1.2;
    ssl_ciphers ecdhe-rsa-aes128-gcm-sha256:high:!anull:!md5:!rc4:!dhe;
    ssl_prefer_server_ciphers on;

    location / {
        proxy_pass http://127.0.0.1:8000;
    }

}

# 这一步把 *域名转发到 www 二级域名上,有利于 seo
server {
    listen 443 ssl;
    server_name example.com;
    return 301 https://www.example.com$request_uri;

}

第一个server 配置的是把普通 80 端口访问的 http 协议转发到 https 访问。
第二个server 配置的就是证书路径和一些参数,这个照抄就行了,只要把证书路径写对
第三个server 配置的是把不带 www 的*域名转发到带 www 的二级域名,利于 seo. 比如 example.com 会自动跳转到 www.example.com 。