记:Nginx 如何配置SSL证书
off999 2025-01-04 22:24 22 浏览 0 评论
引言
最近,有几个其他项目团队的同事问了我几个类似问题:
“钦哥,我们微信小程序微信支付,怎么回调不没反应?”
“钦哥,我们的项目怎么无法通过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
相关推荐
- 在NAS实现直链访问_如何访问nas存储数据
-
平常在使用IPTV或者TVBOX时,经常自己会自定义一些源。如何直链的方式引用这些自定义的源呢?本人基于armbian和CasaOS来创作。使用标准的Web服务器(如Nginx或Apache...
- PHP开发者必备的Linux权限核心指南
-
本文旨在帮助PHP开发者彻底理解并解决在Linux服务器上部署应用时遇到的权限问题(如Permissiondenied)。核心在于理解“哪个用户(进程)在访问哪个文件(目录)”。一、核心...
- 【Linux高手必修课】吃透sed命令!文本手术刀让你秒变运维大神!
-
为什么说sed是Linux运维的"核武器"?想象你有10万个配置文件需要批量修改?传统方式要写10万行脚本?sed一个命令就能搞定!这正是运维工程师的"暴力美学"时...
- 「实战」docker-compose 编排 多个docker 组成一个集群并做负载
-
本文目标docker-compose,对springboot应用进行一个集群(2个docker,多个类似,只要在docker-compose.yml再加boot应用的服务即可)发布的过程架构...
- 企业安全访问网关:ZeroNews反向代理
-
“我们需要让外包团队访问测试环境,但不想让他们看到我们的财务系统。”“审计要求我们必须记录所有第三方对内部系统的访问,现在的VPN日志一团糟。”“每次有新员工入职或合作伙伴接入,IT部门都要花半天时间...
- 反向代理以及其使用场景_反向代理实现过程
-
一、反向代理概念反向代理(ReverseProxy)是一种服务器配置,它将客户端的请求转发给内部的另一台或多台服务器处理,然后将响应返回给客户端。与正向代理(ForwardProxy)不同,正向代...
- Nginx反向代理有多牛?一篇文章带你彻底搞懂!
-
你以为Nginx只是个简单的Web服务器?那可就大错特错了!这个看似普通的开源软件,实际上隐藏着惊人的能力。今天我们就来揭开它最强大的功能之一——反向代理的神秘面纱。反向代理到底是什么鬼?想象一下你...
- Nginx反向代理最全详解(原理+应用+案例)
-
Nginx反向代理在大型网站有非常广泛的使用,下面我就重点来详解Nginx反向代理@mikechen文章来源:mikechen.cc正向代理要理解清楚反向代理,首先:你需要搞懂什么是正向代理。正向代理...
- centos 生产环境安装 nginx,包含各种模块http3
-
企业级生产环境Nginx全模块构建的大部分功能,包括HTTP/2、HTTP/3、流媒体、SSL、缓存清理、负载均衡、DAV扩展、替换过滤、静态压缩等。下面我给出一个完整的生产环境安装流程(C...
- Nginx的负载均衡方式有哪些?_nginx负载均衡机制
-
1.轮询(默认)2.加权轮询3.ip_hash4.least_conn5.fair(最小响应时间)--第三方6.url_hash--第三方...
- Nginx百万并发优化:如何提升100倍性能!
-
关注△mikechen△,十余年BAT架构经验倾囊相授!大家好,我是mikechen。Nginx是大型架构的核心,下面我重点详解Nginx百万并发优化@mikechen文章来源:mikechen....
- 在 Red Hat Linux 上搭建高可用 Nginx + Keepalived 负载均衡集群
-
一、前言在现代生产环境中,负载均衡是确保系统高可用性和可扩展性的核心技术。Nginx作为轻量级高性能Web服务器,与Keepalived结合,可轻松实现高可用负载均衡集群(HA+LB...
- 云原生(十五) | Kubernetes 篇之深入了解 Pod
-
深入了解Pod一、什么是PodPod是一组(一个或多个)容器(docker容器)的集合(就像在豌豆荚中);这些容器共享存储、网络、以及怎样运行这些容器的声明。我们一般不直接创建Pod,而是...
- 云原生(十七) | Kubernetes 篇之深入了解 Deployment
-
深入了解Deployment一、什么是Deployment一个Deployment为Pods和ReplicaSets提供声明式的更新能力。你负责描述Deployment中的目标状...
- 深入理解令牌桶算法:实现分布式系统高效限流的秘籍
-
在高并发系统中,“限流”是保障服务稳定的核心手段——当请求量超过系统承载能力时,合理的限流策略能避免服务过载崩溃。令牌桶算法(TokenBucket)作为最经典的限流算法之一,既能控制请求的平...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)