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相关推荐

  1. [Linux] PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  2. [Linux] PHP程序员玩转Linux系列-Linux和Windows安装nginx

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  3. [Linux] PHP程序员玩转Linux系列-nginx初学者引导

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  4. [Linux] PHP程序员玩转Linux系列-备份还原MySQL

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 前几天有个新闻,说是g ...

  5. [Linux] PHP程序员玩转Linux系列-自动备份与SVN

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  6. [Linux] PHP程序员玩转Linux系列-升级PHP到PHP7

    1.PHP程序员玩转Linux系列-怎么安装使用CentOS 2.PHP程序员玩转Linux系列-lnmp环境的搭建 3.PHP程序员玩转Linux系列-搭建FTP代码开发环境 4.PHP程序员玩转L ...

  7. linux php 守护进程,PHP程序员玩转Linux系列 使用supervisor实现守护进程

    PHP程序员玩转Linux系列文章: 首先遇到的问题是,部署nodejs的博客程序时,我把执行nodejs的命令放到后台,使用加&和nohup命令 如:nodejs index.js & ...

  8. php扩容方案,PHP程序员玩转Linux系列-腾讯云硬盘扩容挂载

    网站搜盘子运行在腾讯云的服务器上,前几天忽然打不开了,我就登陆服务器去瞅一眼咋回事,看了下发现硬盘满了,现在就来记录一下怎么解决 查看硬盘空间大小 使用df命令查看硬盘的使用情况 , 参数是df -h ...

  9. 一些适合程序员玩的游戏

    一些适合程序员玩的游戏 文章目录 一些适合程序员玩的游戏 一.简介 二.screeps 三.codingame 四.codewars 五.gcores 六.https://minecraft.make ...

  10. 一分钟,六张图让您看懂Linux系统对程序员的重要性。

    文章目录 1.Linux与Windows职位数之比2.6:1 2.C/C++程序员Linux与Windows职位数之比3.5:1 3.88.2%的WEB系统部署在Linux系统下 4.数据解读 5.获 ...

最新文章

  1. GDAL2.1.1库在Ubuntu14.04下编译时遇到的问题处理方法
  2. 刻意练习:LeetCode实战 -- Task19. 相同的树
  3. 程序员敲诈老板,或面临 37 年监禁
  4. 真的有能开光追的手游了!自带实机演示的那种,OPPO这次玩“大”了
  5. CodeForces 546B
  6. extjs曲线数据如何从后端获取_B端产品经理应了解的技术知识(上)
  7. 小程序的防盗链 VS 反盗链 - 总结篇
  8. 解构华为云HE2E项目中的容器技术应用
  9. ci php做多图上传,CodeIgniter快速实现图片上传
  10. 【mfc】vs2019创建MFC基于对话框的项目没有插入任何代码运行报错:0xC0000005:读取位置 0xFFFFFFFFFFFFFFFF 时发生访问冲突
  11. 理解ASP.NET MVC中的ActionResult
  12. 拓端tecdat|R语言使用马尔可夫链Markov Chain, MC来模拟抵押违约
  13. Money----思维+模拟
  14. matlab回调函数,matlabGUI回调函数介绍.pptx
  15. python常用模块
  16. php左斜线和右斜线,左斜杠和右斜杠分别有什么意义?
  17. Spring Boot开发之使用JustAuth组件实现第三方登录(QQ、微博等)
  18. android时间24小时,安卓时间显示TextClock显示日期时间,24小时制和12小时制(自定义...
  19. 多标签分类方法总结——实现方法、评价指标、损失函数
  20. 一张图让你了解五险一金

热门文章

  1. FFmpeg总结(二)AV系列结构体之AVFrame
  2. Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
  3. 性能测试--JMeter性能测试工具(简介,环境搭建,环境变量,基本按钮等基本介绍)【2】
  4. python流星雨代码_用python一起来看流星雨
  5. html的经典语法大全,HTML语法大全
  6. 如何设置照片的高度没有滚条_10分钟看懂Photoshop 照片修饰(照片修复工具)
  7. 如何删除Linux一个目录下部分类型之外的所有文件的三种方法
  8. CPU纯软件半虚拟化技术
  9. MQ通道搭建以及连通性检查
  10. 程序员生存定律--如何尽快变的稍微专业一点