网站首页 > 技术教程 正文
引言
最近,有几个其他项目团队的同事问了我几个类似问题:
“钦哥,我们微信小程序微信支付,怎么回调不没反应?”
“钦哥,我们的项目怎么无法通过https访问的?”
然后就有想把配置ssl证书的过程,记录一下,以便传播查阅。
SSL
我们先了解一下什么是SSL、什么是SSL证书,这里将引用 ssl.com 里面介绍SSL的一些概念。
提示:不感兴趣的,可以直接跳过,阅读下一章。
什么是SSL?
SSL (Secure Sockets Layer) and its successor, TLS (Transport Layer Security), are protocols for establishing authenticated and encrypted links between networked computers. Although the SSL protocol was deprecated with the release of TLS 1.0 in 1999, it is still common to refer to these related technologies as “SSL” or “SSL/TLS.”
翻译(谷歌翻译)之后就是:
SSL(安全套接字层)及其后继者 TLS(传输层安全性)是用于在联网计算机之间建立经过身份验证和加密的链接的协议。尽管随着 1999 年 TLS 1.0 的发布,SSL 协议已被弃用,但仍普遍将这些相关技术称为“SSL”或“SSL/TLS”。
什么是SSL证书?
An SSL certificate (also known as a TLS or SSL/TLS certificate) is a digital document that binds the identity of a website to a cryptographic key pair consisting of a public key and a private key. The public key, included in the certificate, allows a web browser to initiate an encrypted communication session with a web server via the TLS and HTTPS protocols. The private key is kept secure on the server, and is used to digitally sign web pages and other documents (such as images and JavaScript files).
An SSL certificate also includes identifying information about a website, including its domain name and, optionally, identifying information about the site’s owner. If the web server’s SSL certificate is signed by a publicly trusted certificate authority (CA), like SSL.com, digitally signed content from the server will be trusted by end users’ web browsers and operating systems as authentic.
An SSL certificate is a type of X.509 certificate.
翻译(谷歌翻译)之后就是:
SSL 证书(也称为 TLS 或 SSL/TLS 证书)是将网站身份绑定到由公钥和私钥组成的加密密钥对的数字文档。证书中包含的公钥允许 Web 浏览器通过 TLS 和 HTTPS 协议发起与 Web 服务器的加密通信会话。私钥安全地保存在服务器上,用于对网页和其他文档(例如图像和 JavaScript 文件)进行数字签名。
SSL 证书还包括有关网站的识别信息,包括其域名,以及(可选)有关网站所有者的识别信息。如果 Web 服务器的 SSL 证书由公共信任的证书颁发机构 (CA)(例如 SSL.com)签署,则最终用户的 Web 浏览器和操作系统将信任来自服务器的数字签名内容是真实的。
SSL 证书是一种 X.509 证书。
配置条件
- 域名
- Nginx SSL 证书
- Nginx 代理
域名,在阿里云上申请一个域名,并解析到相应的服务器(互联网IP)上。
Ngnix SSL证书,在阿里云上申请有效期为1年的免费的SSL证书,并绑定到刚刚申请的域名下,申请验证成功之后,下载 Nginx 配置。
下载之后,得到两个文件:
Nginx 安装和配置代理,可以参考我另外一篇文章:记:如何部署前后端分离项目。
配置证书
拿到证书之后,到我们服务器上(以Windows server 为例),进行配置nginx的ssl配置。
按照惯例,我们先打开nginx官网(nginx.org),看看对应的文档介绍。
进入到https server 介绍,看了会吓一跳,除了准备工作比较繁琐外,配置ssl是如此的简单:
我们一段话一段话的去看:
要配置 HTTPS 服务器,必须在服务器块中的侦听套接字上启用 ssl 参数,并且应指定服务器证书和私钥文件的位置:
server {
listen 443 ssl;
server_name www.example.com;
ssl_certificate www.example.com.crt;
ssl_certificate_key www.example.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
...
}
服务器证书是公共实体。它被发送到连接到服务器的每个客户端。私钥是一个安全实体,应存储在访问受限的文件中,但是它必须可由 nginx 的主进程读取。私钥也可以与证书存储在同一文件中:
ssl_certificate www.example.com.cert;
ssl_certificate_key www.example.com.cert;
在这种情况下,文件访问权限也应受到限制。尽管证书和密钥存储在一个文件中,但只有证书被发送到客户端。
指令 ssl_protocols 和 ssl_ciphers 可用于限制连接仅包含 SSL/TLS 的强版本和密码。默认情况下,nginx 使用“ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3”和“ssl_ciphers HIGH:!aNULL:!MD5”,因此通常不需要显式配置它们。请注意,这些指令的默认值已更改多次。
啥意思?看它的意思是,我们只需要配置:
listen 443 ssl;
server_name [域名];
ssl_certificate [ssl crt 证书];
ssl_certificate_key [ssl 证书key];
就好了?实操一下~~
- 在 nginx/conf 目录下创建 cert/mall目录
- 将准备好的证书 copy到 cert/mall 目录下
- 修改 mall.conf 代理配置
- 刷新nginx 配置, nginx -s realod
最终配置如下:
验证一下,是否生效:
总结
思路很重要,要学会怎么去思考,怎么去做事、做什么事、有哪些事。
tips小技巧: 在windows中清掉所有nginx 进程:taskkill /f /t /im nginx.exe
猜你喜欢
- 2024-10-12 为你的网站加上SSL,可以使用HTTPS进行访问
- 2024-10-12 给官网配置的ssl证书(https)(关于ssl证书认证)
- 2024-10-12 nginx 如何配置ssl证书(nginx ssl pem)
- 2024-10-12 Centos7 Nginx的SSL证书安装(nginx添加ssl证书)
- 2024-10-12 Nginx的SSL相关指令(nginx ssl pem)
- 2024-10-12 nginx自动更新ssl证书(nginx ssl配置详解)
- 2024-10-12 linux :nginx 与ssl 同步安装(linux同步时间服务器命令)
- 2024-10-12 Nginx SSL+tomcat集群配置需要注意啥
- 2024-10-12 自动申请(并自动更新)免费ssl证书的nginx镜像
- 2024-10-12 Nginx安装SSL证书(nginx部署ssl证书)
你 发表评论:
欢迎- 最近发表
-
- Win10 TH2正式版官方ESD映像转换ISO镜像方法详解
- 使用iso镜像升级到Windows 10的步骤
- macOS Ventura 13.2 (22D49) Boot ISO 原版可引导镜像
- 安利一个用ISO镜像文件制作引导U盘的的小工具RUFUS
- CentOS 7使用ISO镜像配置本地yum源
- 用于x86平台的安卓9.0 ISO镜像发布下载:通吃I/A/N、完全免费
- AlmaLinux 9.6发布:升级工具、初步支持IBM Power虚拟化技术
- Rufus写入工具简洁介绍与教程(写入模式)
- 新硬件也能安装使用了,Edge版Linux Mint 21.3镜像发布
- 开源工程师:Ubuntu应该抛弃32位ISO镜像
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)