11. Nginx HTTPS
Posted yanmingbo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11. Nginx HTTPS相关的知识,希望对你有一定的参考价值。
nginx HTTPS
HTTPS基本概念
1.SSL
- 安全套接层
- 认证用户和服务器,确保数据发送到正确的客户机和服务器
- 加密数据以防止数据中途窃取
- 维护数据的完整性,确保数据在传过程中不被改变
2.HTTPS
使用SSL来实现安全的通信
3.证书
证书用于保证密钥的合法性
证书的主体可以使用户、计算机、服务等
证书格式遵循X.509标准
数字证书包含信息
- 使用者的公钥值
- 使用者标识信息(如名称和电子邮件地址)
- 有限期(整数的有效时间)
- 颁发者标识信息
- 颁发者的数字签名
数字证书由权威公正的第三方机构及CA签发
4.配置HTTP前期预备知识
- HTTPS证书的选择
- 专业版OV型证书,不显示企业名称
- 高级版EV型证书,显示企业名称
- HTTPS证书购买选择
- 保护1个域名www
- 保护5个域名 www images cdn test m
- 通配符域名 *.oldboy.com
- HTTPS注意事项
- HTTPS不支持三级域名解析
- Https持支持续费,证书到期需要重新申请进行替换
- Https显示绿色,说明着呢个网站的URL都是https的
- Https显示黄色,因为网站代码肿包含http的不安全连接
- Https显示红色,证书是假的或者过期了
HTTPS证书申请
1.密钥生成过程
- 生成key密钥
- 生成证书签名请求文件(csr文件)
- 生成证书签名文件(CA文件)
2.当前环境
//openssl必须是1.0.2
[root@web02 bbb]# openssl version
OpenSSL 1.0.2k-fips 26 Jan 2017
//nginx必须有ssl模块
[root@web02 bbb]# nginx -V
--with-http_ssl_module
[root@web02 bbb]# mkdir /etc/nginx/ssl_key -p
[root@web02 bbb]# cd /etc/nginx/ssl_key/
[root@web02 ssl_key]# openssl genrsa -idea -out server.key 2048
Enter pass phrase for server.key: 输入密码
Verifying - Enter pass phrase for server.key: 确认密码
[root@web02 ssl_key]# ll
总用量 4
-rw-r--r-- 1 root root 1747 2月 16 17:03 server.key
3.生成自签证书,同时去掉私钥的密码
[root@web02 ssl_key]# openssl req -days 46500 -x509 -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:BJ
Locality Name (eg, city) [Default City]:CP
Organization Name (eg, company) [Default Company Ltd]:CN
Organizational Unit Name (eg, section) []:EU^H^H
Common Name (eg, your name or your servers hostname) []:oldboy.com
Email Address []:1124740487@163.com
[root@web02 ssl_key]# ll
HTTPS配置场景
1.HTTPS配置语法
Syntax:ssl on | off;
Default:ssl off;
Context:http,server
Syntax:ssl_certificate file;
Default:–
Context:http,server
Syntax:ssl_certificate_key file;
Default:–
Context:http,server
2.配置支持Nginx支持https实例
[root@web02 conf.d]# cat ssl.conf
server
listen 80;
server_name www.https1.com;
location /
rewrite .* https://$server_name;
server
listen 443;
server_name www.https1.com;
ssl on;
ssl_certificate ssl_key/server.crt;
ssl_certificate_key ssl_key/server.key;
location /
root /html/https;
index index.html;
[root@web02 conf.d]# mkdir /html/https
[root@web02 conf.d]# echo "https hellow " > /html/https/index.htm
3.测试访问,
由于该证书非第三方权威机构办法,而是我们自己签发的,所以浏览器警告
以上是关于11. Nginx HTTPS的主要内容,如果未能解决你的问题,请参考以下文章