全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP程序员玩转Linux系列 Nginx中的HTTPS详解

PHP程序员玩转Linux系列文章:

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_protocolsssl_ciphers 指令可以被用来限制连接,只包含高版本的TLS和SSL/TLS的密码

从nginx 1.0.5版本开始,nginx默认使用ssl_protocols SSLv3 TLSv1ssl_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.orgwww.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;
 ...
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# Nginx  # HTTPS  # 详解阿里云LINUX服务器配置HTTPS(NGINX)  # Linux shell实现HTTP服务示例代码  # Linux下nginx配置https协议访问的方法  # Linux下SVN服务器同时支持Apache的http和svnserve独立服务器两种模式且使用相同  # Linux服务器nginx访问日志里出现大量http 400错误的请求分析  # Linux下Web性能压力测试工具http_load使用教程  # Linux下模拟http的get/post请求(curl or wget)详解  # 玩转  # 是一个  # 这一  # 放在  # 在这个  # 多个  # 客户端  # 发送给  # 是在  # 都有  # 是因为  # 成了  # 带着  # 最好的  # 其他的  # 用了  # 结合起来  # 不带  # 它会  # 用在 


相关文章: c# 在高并发下使用反射发射(Reflection.Emit)的性能  网站制作报价单模板图片,小松挖机官方网站报价?  网站制作说明怎么写,简述网页设计的流程并说明原因?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  如何快速搭建二级域名独立网站?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  专业公司网站制作公司,用什么语言做企业网站比较好?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  C++中的Pimpl idiom是什么,有什么好处?(隐藏实现)  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  北京网站制作公司哪家好一点,北京租房网站有哪些?  建站之星各版本价格是多少?  建站之星后台管理:高效配置与模板优化提升用户体验  微信推文制作网站有哪些,怎么做微信推文,急?  建站OpenVZ教程与优化策略:配置指南与性能提升  建站主机是否属于云主机类型?  教学网站制作软件,学习*后期制作的网站有哪些?  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  建站三合一如何选?哪家性价比更高?  如何选择高效稳定的ISP建站解决方案?  如何通过VPS搭建网站快速盈利?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?  建站主机选购指南:核心配置优化与品牌推荐方案  如何用IIS7快速搭建并优化网站站点?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】  建站主机选哪种环境更利于SEO优化?  如何选择美橙互联多站合一建站方案?  南京网站制作费用,南京远驱官方网站?  如何通过老薛主机一键快速建站?  平台云上自助建站如何快速打造专业网站?  微信小程序 五星评分(包括半颗星评分)实例代码  如何用免费手机建站系统零基础打造专业网站?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何做静态网页,sublimetext3.0制作静态网页?  如何有效防御Web建站篡改攻击?  建站之星如何实现五合一智能建站与营销推广?  开封网站制作公司,网络用语开封是什么意思?  网页设计网站制作软件,microsoft office哪个可以创建网页?  高防服务器租用指南:配置选择与快速部署攻略  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  如何在局域网内绑定自建网站域名?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  建站之星如何通过成品分离优化网站效率?  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  如何获取上海专业网站定制建站电话? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。