运维 | Nginx 配置 SSL 证书实现 HTTPS+HTTP2

本贴最后更新于 922 天前,其中的信息可能已经时过境迁

一.申请证书

以腾讯云为例,在云产品搜索 ssl 点进红框部分的 SSL 证书,点到我的证书再点击申请免费证书,需要输入已经备案的域名以及自己的邮箱。然后再去域名注册商以阿里云为例,将 CNAME 记录添加等待 10 分钟左右,CA 服务商就会认证成功。并能下载证书。

搜索

申请证书

选择免费证书项

填写域名信息

域名认证方式

获取 DNS 解析

阿里云设置解析

认证成功

等待签发证书

下载证书

二、Nginx 配置 SSL 证书

通过 ftp 连接到服务器将证书上传放到与 nginx.conf 文件同级目录下。

上传证书
在 server 块中设置好证书路径,配置好 TSL 证书的支持版本及加密方式,在监听的端口后加入 http2 关键字开启 http2。然后 nginx 重启或者重新加载文件。

进入服务器

server {
	#监听ipv4的443端口并设置允许http2
        listen 443 ssl http2;
	#监听ipv6的443端口并设置允许http2
        listen [::]:443 ssl http2;
	#监听指定的域名
        server_name www.hcworld.xyz; #填写绑定证书的域名
	#设置证书
        ssl_certificate 1_www.hcworld.xyz_bundle.crt;
        ssl_certificate_key 2_www.hcworld.xyz.key;
        ssl_session_timeout 5m;
	#设置支持的TLS版本
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3; 
	#按照这个套件配置
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        root   html; #站点目录
            index  index.html index.htm;
            proxy_pass http://www.hcworld.xyz;
        }
    }

三、结果

实现 HTTPS 以及 HTTP2

HTTPS 结果查看

HTTP2 结果查看

  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...