Nginx 配置https
45 2023-03-15一、什么是 SSL 证书,什么是 HTTPS
SSL 证书是一种数字证书,它使用 Secure Socket Layer 协议在浏览器和 Web 服务器之间建立一条安全通道,从而实现:
1、数据信息在客户端和服务器之间的加密传输,保证双方传递信息的安全性,不可被第三方窃听;
2、用户可以通过服务器证书验证他所访问的网站是否真实可靠。
HTTPS 是以安全为目标的 HTTP 通道,即 HTTP 下加入 SSL 加密层。HTTPS 不同于 HTTP 的端口,HTTP默认端口为80,HTTPS默认端口为443。
二、SSL证书申请
以下是一些免费申请:
1、FreeSSL https://freessl.org/
2、百度云 https://cloud.baidu.com/product/cas.html
3、Wosign沃通SSL https://freessl.wosign.com/
三、使用 OpenSSL 生成 SSL Key 和 CSR 文件
配置 HTTPS 要用到私钥 privkey.key 文件和 certificate.crt 证书文件。
OpenSSL 命令可以生成。
openssl req -new -newkey rsa:2048 -sha256 -nodes -out certificate.csr -keyout privkey.key -subj "/C=CN/ST=ShenZhen/L=ShenZhen/O=Example Inc./OU=Web Security/CN=blog.21yt.cc"
参数说明:
C:Country ,单位所在国家,为两位数的国家缩写,如: CN 就是中国
ST 字段: State/Province ,单位所在州或省
L 字段: Locality ,单位所在城市 / 或县区
O 字段: Organization ,此网站的单位名称;
OU 字段: Organization Unit,下属部门名称;也常常用于显示其他证书相关信息,如证书类型,证书产品名称或身份验证类型或验证内容等;
CN 字段: Common Name ,网站的域名;
生成 csr 文件后,提供给 CA 机构,签署成功后,就会得到一個 certificate.crt 证书文件,SSL 证书文件获得后,就可以在 Nginx 配置文件里配置 HTTPS 了。
四、Nginx配置
server
{
#ssl参数
listen 443 ssl;
server_name blog.21yt.cc;
#证书文件
ssl_certificate ./blog.21yt.cc/certificate.crt;
#私钥文件
ssl_certificate_key ./blog.21yt.cc/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
error_page 497 https://$host$request_uri;
#强制浏览器使用HTTPS
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains;preload" always;
#max-age:设置单位(s)时间内強制使用 HTTPS 连接
#includeSubDomains:可选,所有子域同时生效
#preload:可选,非规范值,用于定义使用『HSTS 预加载列表』
#always:可选,保证所有响应都发送此响应头,包括各种內置错误响应
#SSL-END
location / {
fastcgi_param HTTPS on;
index index.html index.htm index.php;
}
}

-
使用Axios+PHP+JWT实现登录认证
JWT(JSON Web Token),顾名思义就是可以在Web上传输的token,这种token是用JSON格式进行format的。它是一个开源标准(RFC7519),定义了一个紧凑的自包含的方式在不同实体之间安全的用JSON格式传输信息。
-
使用Echarts画甘特图
Echarts是一个非常强大的图表库, 下面我们来使用它来画甘特图,
-
Composer实现自动加载
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。 你正在创建一个项目,你需要一个库来加载各种插件, 你所需要做的就是创建一个 composer.json 文件
-
分享计算机硬核书单
分享4本计算机内功心法,想在编程行业更进一步,这4本必须吃透: 《计算机组成原理》 《操作系统》 《计算机网络》 《数据结构与算法》
-
Mysql表锁和PHP文件锁的应用
锁一般是在高并发,多人同时操作同一个表的时候使用,例如下订单。由于表锁,会影响其他用户使用,所以建议使用文件锁。
-
完整ASCII码表
ASCII (American Standard Code for Information Interchange):美国信息交换标准代码是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准 ISO/IEC 646。
-
Nginx日志按天分割
nginx日志默认是不分割的,时间一长,日志文件就会很庞大。今天就来通过脚本实现按天切割,废话不多说,直接上代码:
-
Linux服务器Rsync结合inotify同步文件
服务器A:192.168.161.150 (分布服务器)(rsync客户端+inotify) 服务器B:192.168.161.151 (WEB服务器1)(rsync服务端) 服务器C:192.168.161.152 (WEB服务器2)(rsync服务端) 说明:服务器A有文件更新,自动同步到服务器B和C
-
OAuth 2.0授权认证
OAuth 2.0一个关于授权的开放的网络协议。用户同意授权给第三方使用系统数据,系统分发一个临时令牌(Token),第三方可通过令牌获取相关数据。
-
frp内网穿透,ngnix反向代理
设计思路: 1、域名frp.xxx.com解析到公网IP(112.112.112.112示例IP); 2、公网搭建nginx添加frp.xxx.com反向代理到公网服务器的8080端口; 3、frp服务端配置http监听端口为8080 4、内网的frp客户端负责转发内网服务器的WEB端口到frp服务器的8080端口同时制定只监听frp.xxx.com这个域名。 实现: 一、安装