[Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS
1.PHP程序员玩转Linux系列-怎么安装使用CentOS
2.PHP程序员玩转Linux系列-lnmp环境的搭建
3.PHP程序员玩转Linux系列-搭建FTP代码开发环境
4.PHP程序员玩转Linux系列-备份还原MySQL
5.PHP程序员玩转Linux系列-自动备份与SVN
6.PHP程序员玩转Linux系列-Linux和Windows安装nginx
7.PHP程序员玩转Linux系列-nginx初学者引导
创建一个HTTPS服务器
在nginx.conf配置文件中,在server块里面通过listen指令指定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;ssl_ciphers HIGH:!aNULL:!MD5;... }
服务器证书是一个公开实体,它会被发送给每一个连接过来的客户端.私钥是一个安全实体,它应该被存储在一个限制权限的文件中.但是nginx的master进程必须能够读到该私钥文件. 私钥也可以和证书放在一个文件里面.
ssl_certificate www.example.com.cert; ssl_certificate_key www.example.com.cert;
在这个例子里面,文件的访问权限应该被限制.尽管证书和私钥在一个文件里面,只有证书会被发送给客户端.
ssl_protocols 和ssl_ciphers 指令可以被用来限制连接,只包含高版本的TLS和SSL/TLS的密码
从nginx 1.0.5版本开始,nginx默认使用ssl_protocols SSLv3 TLSv1和ssl_ciphers HIGH:!aNULL:!MD5.从nginx 1.1.13 和 1.0.12 版本开始,默认更新成了 ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2
一个单一的HTTP和HTTPS服务
可以配置一个服务同时支持HTTP和HTTPS请求, 在虚拟主机中使用listen指令,一个带着ssl参数,一个不带参数.
server {listen 80;listen 443 ssl;server_name www.example.com;ssl_certificate www.example.com.crt;ssl_certificate_key www.example.com.key;... }
在nginx 0.7.13和更早的版本中,SSL不能被单独设置监听socket.只能通过ssl指令为全部server开启SSL,才能实现HTTP/HTTPS同时支持.为了解决这一问题,为listen指令添加了ssl参数.因此在0.7.14和之后的版本中,ssl指令不能再用了.
基于名称的HTTPS服务
一个很普遍的问题出现了,那就是解决当在一个ip地址配置监听两个或多个HTTPS服务.
server {listen 443 ssl;server_name www.example.com;ssl_certificate www.example.com.crt;... }server {listen 443 ssl;server_name www.example.org;ssl_certificate www.example.org.crt;... }
使用这个配置,浏览器只能接收到默认的证书,在这个例子中就是www.example.com证书.这个是因为SSL协议本身造成的.SSL的连接是在浏览器发送HTTP请求之前建立的,因此nginx不知道请求的名称.所以它只能提供默认服务的证书.
解决这一问题最好的方式是分配不同的IP地址给每一个HTTPS服务
server {listen 192.168.1.1:443 ssl;server_name www.example.com;ssl_certificate www.example.com.crt;... }server {listen 192.168.1.2:443 ssl;server_name www.example.org;ssl_certificate www.example.org.crt;... }
使用多个名称生成SSL证书
这里有其他的方式解决上面的问题,但是每一种都有各自的缺点.一种方式是生成证书的时候更改SubjectAltName字段,比如: www.example.com 和 www.example.org 两个,但是这个字段有长度限制.
另一种方式是证书名称那里使用通配符,比如: *.example.org,但是 通配符名称只能用在一级子域名上.这个名称可以匹配www.example.org ,但是不能匹配example.org或 www.sub.example.org
这两种方式可以结合起来,在SubjectAltName字段里填上 example.org 和 *.example.org
最好把多域名证书和私钥放在配置http块中,这样所有的服务都可以继承这个配置
ssl_certificate common.crt; ssl_certificate_key common.key;server {listen 443 ssl;server_name www.example.com;... }server {listen 443 ssl;server_name www.example.org;... }
转载于:https://www.cnblogs.com/taoshihan/p/6678246.html
[Linux] PHP程序员玩转Linux系列-Nginx中的HTTPS相关推荐
- [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-nginx初学者引导
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-备份还原MySQL
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是g ...
- [Linux] PHP程序员玩转Linux系列-自动备份与SVN
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7
1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...
- linux php 守护进程,PHP程序员玩转Linux系列 使用supervisor实现守护进程
PHP程序员玩转Linux系列文章: 首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令 如:nodejs index.js & ...
- php扩容方案,PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载
网站搜盘子运行在腾讯云的服务器上,前几天忽然打不开了,我就登陆服务器去瞅一眼咋回事,看了下发现硬盘满了,现在就来记录一下怎么解决 查看硬盘空间大小 使用df命令查看硬盘的使用情况 , 参数是df -h ...
- 一些适合程序员玩的游戏
一些适合程序员玩的游戏 文章目录 一些适合程序员玩的游戏 一.简介 二.screeps 三.codingame 四.codewars 五.gcores 六.https://minecraft.make ...
- 一分钟,六张图让您看懂Linux系统对程序员的重要性。
文章目录 1.Linux与Windows职位数之比2.6:1 2.C/C++程序员Linux与Windows职位数之比3.5:1 3.88.2%的WEB系统部署在Linux系统下 4.数据解读 5.获 ...
最新文章
- GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法
- 刻意练习:LeetCode实战 -- Task19. 相同的树
- 程序员敲诈老板,或面临 37 年监禁
- 真的有能开光追的手游了!自带实机演示的那种,OPPO这次玩“大”了
- CodeForces 546B
- extjs曲线数据如何从后端获取_B端产品经理应了解的技术知识(上)
- 小程序的防盗链 VS 反盗链 - 总结篇
- 解构华为云HE2E项目中的容器技术应用
- ci php做多图上传,CodeIgniter快速实现图片上传
- 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
- 理解ASP.NET MVC中的ActionResult
- 拓端tecdat|R语言使用马尔可夫链Markov Chain, MC来模拟抵押违约
- Money----思维+模拟
- matlab回调函数,matlabGUI回调函数介绍.pptx
- python常用模块
- php左斜线和右斜线,左斜杠和右斜杠分别有什么意义?
- Spring Boot开发之使用JustAuth组件实现第三方登录(QQ、微博等)
- android时间24小时,安卓时间显示TextClock显示日期时间,24小时制和12小时制(自定义...
- 多标签分类方法总结——实现方法、评价指标、损失函数
- 一张图让你了解五险一金
热门文章
- FFmpeg总结(二)AV系列结构体之AVFrame
- Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
- 性能测试--JMeter性能测试工具(简介,环境搭建,环境变量,基本按钮等基本介绍)【2】
- python流星雨代码_用python一起来看流星雨
- html的经典语法大全,HTML语法大全
- 如何设置照片的高度没有滚条_10分钟看懂Photoshop 照片修饰(照片修复工具)
- 如何删除Linux一个目录下部分类型之外的所有文件的三种方法
- CPU纯软件半虚拟化技术
- MQ通道搭建以及连通性检查
- 程序员生存定律--如何尽快变的稍微专业一点