Nginx SSL配置
一、SSL 原理
① 客户端( 浏览器 )发送一个 https 请求给服务器
② 服务器要有一套证书,其实就是公钥和私钥,这套证书可以自己生成,也可以向组织申请,服务器会把公钥传输给客户端
③ 客户端收到公钥后,会验证其是否合法有效,无效会有警告提醒,有效则会生成一串随机数,并用收到的公钥加密,然后把加密后的随机字符串传输给服务器
④ 服务器收到加密随机字符串后,先用私钥解密来获取到这一串随机字符串,再用这串随机字符串加密要传输的数据,然后把加密后的数据传给客户端
⑤ 客户端收到数据后, 再用自己的私钥也就是那个随机字符串进行解密,最终得到想要的数据
二、Nginx SSL 配置
1. 先生成一套证书( 这里我们先自己生成证书来做实验,在实际中应该向合法机构购买证书 )
[root@localhost ~]$ cd /usr/local/nginx/conf/
[root@localhost conf]$ openssl genrsa -des3 -out tmp.key 2048 # 生成私钥文件(tmp.key),会让你设置私钥文件的密码
[root@localhost conf]$ openssl rsa -in tmp.key -out ssl.key && rm -f tmp.key # 转换私钥文件(ssl.key),把密码取消掉,否则客户端用https访问时需要输入密码
[root@localhost conf]$ openssl req -new -key ssl.key -out ssl.csr # 生成一个证书请求文件(ssl.csr),需要用到这个请求文件与私钥文件结合来生成公钥文件,会让你填一些信息,可以随便填
[root@localhost conf]$ openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt && rm -f ssl.csr # 根据证书请求文件来生成公钥(ssl.crt)
2. Nginx 配置 SSL
[root@localhost ~]$ cat /usr/local/nginx/conf/vhost/ssl.conf
server {
listen 443; # https监听443端口
server_name www.test.com;
index index.html index.htm index.php;
root /data/www; ssl on; # 开启SSL
ssl_certificate ssl.crt; # 指定公钥文件
ssl_certificate_key ssl.key; # 指定私钥文件
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 指定支持的SSL协议版本
}
[root@localhost ~]$ /usr/local/nginx/sbin/nginx -t
[root@localhost ~]$ /etc/init.d/nginx restart # 注意配置https要重启,不是重载
3. 客户端使用 https 方式访问
Nginx SSL配置的更多相关文章
- Nginx SSL配置过程
1. 在godaddy购买了UCC SSL(最多5个域名)的SSL证书 2. 设置证书 -- 管理 -- 3. 需要制作证书申请CSR文件(在线工具制作或者openssl命令制作),保存CSR和key ...
- nginx - ssl 配置 - globelsign ssl
前提: 3个文件 - domain.csr.domain.key.xxx.cer 简述: 1. 本地生成 .key文件 [附件] 2. 再利用key文件,生成csr(certificate Secu ...
- nginx ssl 配置
user www www; worker_processes auto; error_log /home/wwwlogs/nginx_error.log crit; pid /usr/local/ng ...
- nginx + SSL优化配置
nginx + SSL优化配置: #http段添加如下配置项: http { ssl_prefer_server_ciphers on; #设置协商加密算法时,优先使用我们服务端的加密套件,而不是客户 ...
- Tomcat的SSL证书配置以及Tomcat+Nginx实现SSL配置
把jks上传到java容器在的服务器上,路径只要不是webapps下就可以,然后到conf目录下server.xml里配置 <Connector port=" protocol=&qu ...
- Ubuntu Nginx下配置网站ssl实现https访问
最近在看 HTTP权威指南 看到介绍了HTTPS的ssl,自己就动手测试了下,将步骤记录下 HTTPS简介 什么是HTTPS?百科是这样解释的.HTTPS(全称:Hyper Text Trans ...
- nginx反向代理cas server之1:多个cas server负载均衡配置以及ssl配置
系统环境采用centOS7 由于cas server不支持session持久化方式的共享,所以请用其他方式代替,例如:组播复制. 为什么不支持session持久化:http://blog.csdn.n ...
- nginx普通配置/负载均衡配置/ssl/https配置
1.nginx普通配置 server { listen ; server_name jqlin.lynch.com; access_log /var/log/nginx/main.log main; ...
- Linux下Nginx安全证书ssl配置方法
分享下我是如何一步步在Nginx上配置SSL的.首先,确保安装了OpenSSL库,并且安装Nginx时使用了–with-http_ssl_module参数. 初学者或者菜鸟建议使用LNMP进行一键安装 ...
随机推荐
- Python __all__系统变量
#__all__系统变量的使用 ''' __all__可以赋值一个字符串列表,列表中的元素表示外界调用该py文件可以使用的函数或者类 如果使用了__all__系统变量,并且调用该py文件使用的是fro ...
- Axiom3D写游戏:用Overlay实现Mesh浏览.
从网上找了些资源,大多搜Ogre,Mesh资源,然后为了方便查看各个Mesh,以及对应骨骼动画.为了实用性,考虑放在原游戏窗口里实现.最开始打算窗口新建viewport来实现,后发现这种方式的局限性, ...
- 求 pi 的近似值题型汇总
(注:暂时先记录这些问题,后期会持续更新) 一.用格雷戈里公式计算π的近似值,精度要求:最后一项的绝对值小于0.00001 1,用while循环实现 int denominator,flag; dou ...
- Python中的高级turtle(海龟)作图
在Python里,海龟不仅可以画简单的黑线,还可以用它画更复杂的几何图形,用不同的颜色,甚至还可以给形状填色. 一.从基本的正方形开始 引入turtle模块并创建Pen对象: >>> ...
- Maven 构建生命周期
构建生命周期是什么? 构建生命周期阶段的目标是执行顺序是一个良好定义的序列.这里使用一个例子,一个典型的 Maven 构建生命周期是由下列顺序的阶段: 阶段 处理 描述 准备资源 资源复制 资源复制可 ...
- 解决Eclipse代码分析插件SonarLint在Console输出乱码问题
在Eclipse安装目录下的eclipse.ini文件末尾加上一行 -Dfile.encoding=UTF-8 即可.
- R语言数据框小技巧
当我们想要把数据框的行或者列按照指定的顺序排列时,可以通过行名称或者列名称快速排列 data <- data.frame(matrix(1:9, ncol=3)) rownames(data) ...
- VMware克隆虚拟机后无法启动网卡
最简单的办法: 修改这个文件:/etc/udev/rules.d/70_persistent-net.rules 把eth1修改为eth0,记下里面的mac地址 修改/etc/sysconfig/ne ...
- c# 单实例运行
/// <summary> /// 单实例运行程序 /// </summary> static void SingleInstanceRun() { bool isAppRun ...
- C# 各种输入格式验证#各种输入格式验证
/// <summary> /// 各种输入格式验证 /// </summary> public class ValidateUtil { private static Reg ...