nginx代理证书使用方法
一、证书购买
一般情况,申请证书时需要添加DNS解析,具体的步骤一般运营商都会给予详细说明。当然,也需要填写证书保护的处理的域名,
一般非免费的证书可以支持多个域名处理,免费的一般只能支持一个域名的设置。
如果要使自己的网站支持https通信,并能被所有浏览器识别支持,那么就需要自己申购证书,
可以到阿里、万维网及其它证书运营商处申请购买,当然自己也可以制作CA证书,只不过不被浏览器识别,
一般提示该证书未被认证。购买之后,一般不需要额外的证书再配置,比如:在阿里购买的证书一般包含三个文件:
214087265700561.key、
214087265700561.pem、
214087265700561.pfx、
pfx-password.txt,
并且前三者文件名称相同,密码文件默认一串pfx数字密码。
二、证书配置
在Nginx中,如果要添加CA证书支持,就需要开启对http的ssl安全加密处理模块,
也就是with-http_ssl_module的支持。另外,需要重新编译Nginx源码,将前面的模块引入进来,
最后,在替换Nginx的二进制启动文件,重新加载启动Nginx即可生效。
1、建立cert目录
cd /usr/local/nginx/conf
mkdir cert
进入nginx配置根目录,并建立cert目录,将所有CA证书文件放入其中即可。
2、添加SSL支持
cd /home/nginx-1.8.1
首先,查看下Nginx当前参数:
nginx -V
其次,复制这些参数添加对with-http_ssl_module支持,并执行:
./configure --prefix=/usr/local/nginx--with-http_stub_status_module --add-module=./src/nginx-http-concat-master--with-http_ssl_module
然后,make编译Nginx源码(不要makeinstall,否则覆盖了),并替换二进制nginx文件
make
在替换二进制nginx文件前,需要停掉正在运行的nginx服务,后再替换:
nginx -s stop
cp objs/nginx /usr/local/nginx/sbin/
重新启动即可:nginx
3、nginx.conf配置
完成了对ssl的支持后,就是对nginx.conf核心配置文件进行配置了,主要是开启443 ssl端口及服务的监听,
以及开启ssl和证书相关的配置,具体如下:
cd /usr/local/nginx/conf/nginx.conf
vim nginx.conf
添加如下内容:
ssl on;
ssl_certificate cert/214087265700561.pem;
ssl_certificate_key cert/214087265700561.key;
ssl_session_timeout 5m;
第一行,开启对http协议的ssl处理;
第二行,指定pem密钥文件位置;
第三行,指定证书的key文件位置;
第四行,设置ssl的session超时时间为5分钟;
4、http到https转发
cd /usr/local/nginx/conf/nginx.conf
vim nginx.conf
添加如下内容,使http默认访问方式自动跳转到https协议方式:
if ($scheme = http) {
return 301https://$server_name$request_uri;
}
三、验证测试
如何验证是否支持https加密通信协议?我们只需要打开任何浏览器,并在地址栏中输入我们证书所关联的域名即可。
此时,如果添加成功,那么会在浏览器域名左边或其它位置出现一个锁的图标或安全的字样(不同浏览器略有不同)
四、特殊说明
1、同时支持http和https
如何同时支持http和https?其实很简单,我们只需要将ssl on;注释掉。
2、多个域名的SSL处理
多个域名的SSL配置与上面的配置相同,比如:一个主机和多个虚拟主机的域名处理,上面演示的是主机的配置,
而虚拟机中的配置也是相同的。如果所购买的证书为非免费型的证书,那么一个证书可以同时支持多个域名,
比如:一级域名已经配置了,那么二级域名就可以不用再配置了。
nginx代理证书使用方法的更多相关文章
- 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...
- codeigniter(ci)在nginx下返回404的处理方法即codeigniter在nginx下配置方法
codeigniter(ci)在nginx下返回404的处理方法即codeigniter在nginx下配置方法 进入nginx的配置文件 加上一句(本来就有这句,只需要修改一下就行了) locatio ...
- Nginx 错误处理方法: bind() to 0.0.0.0:80 failed
Nginx 错误处理方法: bind() to 0.0.0.0:80 failed 今天启动window上的nginx总是报错 错误信息是bind() to 0.0.0.0:80 failed (10 ...
- 使用Nginx+uWSGI+Django方法部署Django程序(下)
在上一篇文章<五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)>中,阐述了如何只使用uWSGI来部署Django程序. 当然,单单只有uWSGI是不够的, ...
- 使用Nginx+uWSGI+Django方法部署Django程序(上)
Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...
- centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)
首先,本来不想写这篇博客了,但是我测试了很多网上的例子包括简书的,全不行,我总结原因是自己太笨,搞了俩个晚上,后来决定,自己还是写一篇记录下来,保证自己以后使用 环境: centos6.7 64 py ...
- 交叉编译php5,、nginx、squid方法
本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 交叉编译php5 软件版本:php-5.4.27 依赖库:zlib,libxml2 交叉编译器:arm-hisi ...
- web应用下的安全问题以及tomcat/nginx对应解决方法(持续更新、亲测可解决问题)
最近一券商那边扫描反馈了下面几个非业务型安全漏洞,要求解决,如下: XSS 自己写个脚本response的时候对特殊字符进行了处理,或者网上搜下一堆(不要忘了回车.换行). HTML form wit ...
- 使用Nginx+uWSGI+Django方法部署Django程序
第一步先解决uwsgi与django的桥接.解决在没有nginx的情况下,如何使用uwsgi+DJANGO来实现一个简单的WEB服务器. 第二步解决uwsgi与Nginx的桥接.通过nginx与uws ...
随机推荐
- idea 编译 brooklin
gradle 项目导入 idea 之后,各种报错,run 不起来 手动加入各种依赖 配置启动类 指定 log4j.properties
- RedHat 5下安装gcc编译环境的具体步骤
RedHat 5下安装gcc编译环境的具体步骤 在RHEL5系统中默认不安装linux系统中的开发编译环境(gcc),此软件包安装时依赖其他包较多 在以前使用RHEL4时可以通过如下命令安装: rpm ...
- 【HTML5】---【HTML5提供的一些新的标签用法以及和HTML 4的区别】
HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p ...
- [不错]A step-by-step guide to enabling security, TLS/SSL, and PKI authentication in Elasticsearch
Now posted on the Elastic blog December 12, 2018 update: This article has been published on Elastic’ ...
- Python unittest 之 BeautifulReport可视化报告
众所周知的报告是HTMLTestRunner,虽然经过众多的大神修改后,功能挺强大的,但这颜值,我就不多说了,大家自己感受下吧 HTMLTestRunner就不多说了,近来发现了一款款式新颖,还不漏油 ...
- mycat是什么?你是怎么理解的?你们公司分库分表的分片规则是什么?搭建mycat环境常用的配置文件有哪些?
1.mycat是什么? 国内最活跃的.性能最好的开源数据库分库分表中间件 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务.ACID.可以替代MySQL的加强版数据库 一个可以视为MySQL集 ...
- ubuntu系统熄屏无法唤醒
ubuntu系统熄屏无法唤醒 解决办法:重启后,安装laptop-mode-tools工具包. 1.检查是否安装了grep laptop-mode-tools 工具包 $ dpkg -l | grep ...
- linux是什么与如何学习(三)
1.1Linux是什么 Linux是在计算机上面运作的,所以说是一组软件. 1.2 Linux是什么?操作系统还是应用程序? 计算机主机是由一套硬件所组成的,为了有效的控制这些硬件资源,于是就有了操 ...
- 超详细的CentOS8Linux新功能介绍 镜像iso下载安装
在这文章中,我们会使用图解的方式演示 CentOS 8 的安装方法. CentOS8中软件和系统管理请参照https://www.cnblogs.com/fusheng11711/p/11809963 ...
- Hive开发中使用变量的两种方法
在使用hive开发数据分析代码时,经常会遇到需要改变运行参数的情况,比如select语句中对日期字段值的设定,可能不同时间想要看不同日期的数据,这就需要能动态改变日期的值.如果开发量较大.参数多的话, ...