一、证书购买

一般情况,申请证书时需要添加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代理证书使用方法的更多相关文章

  1. 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  2. codeigniter(ci)在nginx下返回404的处理方法即codeigniter在nginx下配置方法

    codeigniter(ci)在nginx下返回404的处理方法即codeigniter在nginx下配置方法 进入nginx的配置文件 加上一句(本来就有这句,只需要修改一下就行了) locatio ...

  3. 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 ...

  4. 使用Nginx+uWSGI+Django方法部署Django程序(下)

    在上一篇文章<五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)>中,阐述了如何只使用uWSGI来部署Django程序. 当然,单单只有uWSGI是不够的, ...

  5. 使用Nginx+uWSGI+Django方法部署Django程序(上)

    Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式. 在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求.ng ...

  6. centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)

    首先,本来不想写这篇博客了,但是我测试了很多网上的例子包括简书的,全不行,我总结原因是自己太笨,搞了俩个晚上,后来决定,自己还是写一篇记录下来,保证自己以后使用 环境: centos6.7 64 py ...

  7. 交叉编译php5,、nginx、squid方法

    本文为原创,转载请注明:http://www.cnblogs.com/tolimit/ 交叉编译php5 软件版本:php-5.4.27 依赖库:zlib,libxml2 交叉编译器:arm-hisi ...

  8. web应用下的安全问题以及tomcat/nginx对应解决方法(持续更新、亲测可解决问题)

    最近一券商那边扫描反馈了下面几个非业务型安全漏洞,要求解决,如下: XSS 自己写个脚本response的时候对特殊字符进行了处理,或者网上搜下一堆(不要忘了回车.换行). HTML form wit ...

  9. 使用Nginx+uWSGI+Django方法部署Django程序

    第一步先解决uwsgi与django的桥接.解决在没有nginx的情况下,如何使用uwsgi+DJANGO来实现一个简单的WEB服务器. 第二步解决uwsgi与Nginx的桥接.通过nginx与uws ...

随机推荐

  1. Ruby小白入门笔记之<个人记录档>

    书写缘由 快两年的JAVA开发,因为来到一家新公司,产品需要用Ruby开发,故此才有了这从头开始,一入编程深似海啊...... 因为入门时是JAVA,所以理念跟规范早已形成,故此感觉突然采用Ruby编 ...

  2. 转载-Mysql主主复制架构配置

    Mysql主主复制架构配置 转载:原始出处 http://luoweiro.blog.51cto.com/2186161/658550MySQL主主复制结构区别于主从复制结构.在主主复制结构中,两台服 ...

  3. 【HANA系列】SAP 一位SAP培训顾问的建议:SAP HANA应该如何学习?

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP 一位SAP培训顾问的建议 ...

  4. Egret入门学习日记 --- 第七篇(书中 3.9节 内容)

    第七篇(书中 3.9节 内容) 好,今天就来看下 3.9节 的内容. 第一点: 昨天就已经搞定了. 第二点: 也包括在昨天的内容了. 第三点: 如果在构造函数里直接引用组件,就会挂掉. 但是把位置变化 ...

  5. switch-case的选择用法

    企业发放的奖金根据利润提成.利润I低于或等于100000元的,奖金可提0.1:利润高于100000元,低于200000(100000<I<=200000)时,低于100000元的部分按10 ...

  6. IIS服务搭建 试图加载格式不正确的程序

    1.基础步骤 https://jingyan.baidu.com/article/fedf073770f23335ac8977b1.html 2.错误解决 试图加载格式不正确的程序   解决:在IIS ...

  7. js知识点——2之navigator

    navigator(领航者) 1.appCodeName(返回浏览器的代码名) var x= navigator; document.write("CodeName:"+x.app ...

  8. springboot2.0和Druid整合配置数据源

    1. idea使用spring 初始化工具初始化springboot项目(要选中web) 下一步,下一步 2. 在pom.xml中,引入Druid连接池依赖: <dependency> & ...

  9. mysql整理-常用sql语句

    一.常用sql show variables like 'character_set_client';#查询字符集 show databases;#列出所有的服务器上的数据库alter create ...

  10. 如何减少程序间的耦合度?_DI与接口

    spring 开发提倡接口编程,配合DI技术可以更好的减少层(程序)与层(程序)之间的解耦合例子说明:  任务:要求:        1.打印机依赖纸张和墨盒        2.纸张有A4和B5两种  ...