nginx 配置 SSL 证书实现 https 访问

news/2024/9/23 21:03:08/

nginx 配置SSL证书实现https访问

  • 1. SSL 证书简介与获取
    • 1.1 SSL 证书介绍
    • 1.2 获取 SSL 证书
  • 2. nginx 配置 SSL 文件
    • 2.1 SSL 文件放置与配置文件修改
      • 2.1.1 文件配置
      • 2.1.2 强制 https 访问
    • 2.2 验证配置结果

同步发布在个人笔记 nginx 配置 SSL 证书实现 https 访问

配置好 nginx 服务,并且把域名解析到服务器后,我们已经可以通过 http://mydomain.com访问到页面了。但是 http 协议是明文通信,如果我们希望我们的服务器与web应用更安全的话,就应该使用 https 协议。本文就记录一下 nginx 配置 SSL 证书实现 https 协议的过程。SSL 证书采取 cloudflare 颁发的长时间证书。
域名解析:域名获取 · 解析至公网服务器
nginx 部署: DOCKER部署NGINX,PHP环境(步骤+注解)

1. SSL 证书简介与获取

1.1 SSL 证书介绍

如上文所说,http 协议是明文协议,https 协议是加密协议,这个加密过程就是通过 SSL(Secure socket layer) 证书(其中一种方式)实现的。SSL 证书分为两部分

  • xxx.pem 证书文件
  • xxx.key 私钥文件

两个文件将服务器与域名绑定在一起,这样就能通过 https 协议和这个域名,安全的访问服务器上的 web 应用了。

1.2 获取 SSL 证书

SSL 证书可以向 CA 机构通过付费的方式申请(证书都是有有效期的),也可以自己制作。一般企业会去购买证书,个人用户推荐使用免费的证书。
上面已经说明,SSL 证书将域名和服务器绑定。那我们就可以找相关服务商申请证书,比如阿里云、腾讯云、华为云已经经典的 Let’s Encrypt 方式。
由于我的服务器是让 cloudflare 管理的,那就正好使用 cloudflare 的长时期(15年)证书吧。
注意要使用 cloudflare 的 SSL 证书必须要开启 CDN 服务,也就是 DNS 那里的小云朵,详细也可以参考笔记:域名解析:域名获取 · 解析至公网服务器。
现在假设我们已经把域名通过 cloudflare 解析到我们的服务器,并且已经开启 CDN 小云朵了。
https://img-blog.csdnimg.cn/direct/51ea42369d0043afbb22a5568739e41c.png" alt="在这里插入图片描述" />

进入站点的管理界面,选择左侧栏的SSL/TLS —>概述,并将加密模式改为完全(严格)
https://img-blog.csdnimg.cn/direct/b05f9456ac154c92b4e460317bdcf03e.png" alt="在这里插入图片描述" />

点击源服务器,进入创建界面
https://img-blog.csdnimg.cn/direct/54f86c92703847d282fd21475562e578.bmp" alt="在这里插入图片描述" />

确定包含的域名包含我们的domain.com和所有 CNAME 的域名*.domain.com
https://img-blog.csdnimg.cn/direct/5b6f0c8b84c049af9225701c3e8afb8f.bmp" alt="在这里插入图片描述" />

点击创建即可,获得两个文本,建议保存为与域名相关的文件

  • domain_com.pem
  • domain_com.key

文件务必要保存好,尤其是key私钥文件,后面是不能通过网页再次查看的。
这样我们的 SSL 证书就获取好了。

nginx__SSL__38">2. nginx 配置 SSL 文件

2.1 SSL 文件放置与配置文件修改

2.1.1 文件配置

nginx 配置 SSL 文件实际上是为一个域名配置 https 服务,所以归根结底是配置一个新域名-服务,所以应该配置在conf.d 文件夹。
/etc/nginx/conf.d/文件夹下新建SSL文件夹,用来存放刚刚获得的domain_com.pem, domain_com.key。然后新建domain_com.conf, 编辑为类似如下的内容:

server {listen	443 ssl;		# HTTPS的默认访问端口443。     server_name	domain.com;		# 证书绑定的域名ssl    on;		# 开启 SSLssl_certificate	/etc/nginx/cond.d/SSL/domain_com.pem;		# 绝对路径ssl_certificate_key	/etc/nginx/cond.d/SSL/domain_com.key;		# 绝对路径ssl_session_cache shared:SSL:1m;ssl_session_timeout 5m;#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;#表示优先使用服务端加密套件。默认开启     ssl_prefer_server_ciphers on;# log 文件access_log /var/log/nginx/nginx.vhost.access.log;error_log /var/log/nginx/nginx.vhost.error.log; location / {root html;index index.html index.htm;#其他的配置~~}
}

TLS 没开的话把相关部分关掉即可。

https__74">2.1.2 强制 https 访问

如果希望所有通过此域名的访问都必须走 https 协议的话,可以在上面的配置语句后面跟上强制跳转的语句:

server {listen 80;#填写证书绑定的域名server_name domain.com;#将所有HTTP请求通过rewrite指令重定向到HTTPS。rewrite ^(.*)$ https://$host$1;location / {index index.html index.htm;}
}

2.2 验证配置结果

配置好后。通过systemctl restart nginx重启 nginx 服务并加载配置文件。
然后去浏览器输入https://domain.com看看是否能访问吧。


http://www.ppmy.cn/news/1435274.html

相关文章

虚拟DOM的发展趋势和潜在创新

虚拟DOM(Virtual DOM)技术是React框架的核心特性之一,它通过在内存中构建一个轻量级的DOM副本来提高页面性能。然而,虚拟DOM技术并非是完美无缺的,它仍然存在一些潜在的改进空间和发展方向。 性能优化:虚拟…

智能驾驶+网络安全

在智能驾驶场景下,安全问题一直是一个持续热点。 针对车机模块不被黑客利用Linux的漏洞攻击,可以采取以下几种方式来提高安全性: 安全设计和防护:在设计车机模块时,需要考虑安全性,并采取相应的安全防护措施…

QT——其他方式实现HelloWrold

QT——其他方式实现HelloWrold 使用输入框实现使用代码实现 通过按钮实现信号槽代码方式实现 我们之前对QT实现HelloWorld有了一些基本的了解,用了一些简单的方法实现了HelloWorld,如果对QT还不怎么了解的,可以点击这里: https://…

go学习知识点

学习 Go 语言涉及许多不同的概念和知识点。以下是一些关键的学习领域: 基础概念 变量和类型:了解 Go 的基本数据类型,如整型、浮点型、布尔型、字符串等,以及如何声明和使用变量。包管理:学习如何导入和使用其他包&a…

十四、集合框架和枚举

1、集合框架的基本概念 1)思考 在以前的学习中使用什么来记录多个相同类型的数据? 使用基本数据类型 如何记录一个班级30个同学的信息? 可以使用本节课学习到的内容。 如果有新生插班怎么办? 如果有班主任一起算入班级怎么办? 若使用数组记录数据的缺点 数组长度不可变!…

云计算时代,企业面临的云安全风险

如今,随着云计算等新兴科技的发展,不同类型企业间的关联越来越多,它们之间的业务边界已被打破,企业上云成为了大势所趋。云计算应用帮助企业改变了IT资源不集中的状况,同时,数据中心内存储的大量数据信息&a…

2 什么是分布式锁

概述 为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度。而这个分布式协调技术的核心就是来实现这个分布式锁。 为什么要使用分布式锁 成员变量 A 存在 JVM1、JVM2、JVM3 三个 JVM 内存中成员变量 A 同时都会在 JVM 分…

如何选择正规的贵金属交易平台?

在进行贵金属投资交易时,选择一个正规可靠的交易平台至关重要。贵金属交易平台可以提供安全、透明和高效的交易环境。 选择正规的贵金属交易平台的第一步是研究平台的信誉和声誉。您可以查阅平台的客户评价和评论,了解其他投资者对该平台的看法。此外&am…