先看Nginx中的配置

server {
listen ;
ssl on;
ssl_certificate /usr/local/nginx/conf/任意证书名.crt;
ssl_certificate_key /usr/local/nginx/conf/任意私钥名(可带密码,可不带密码).key;
}

  重要事项:

  在生成CSR文件时同时生成您的私钥,如果您丢了私钥或忘了私钥密码,则颁发证书给您后不能安装成功!您必须重新生成私钥和CSR文件,免费重新颁发新的证书。为了避免此情况的发生,请在生成CSR后一定要备份私钥文件和记住私钥密码,最好是在收到证书之前不要再动服务器。 “openssl”用于生成私钥和CSR,OpenSSL一般安装在/user/bin下,如果您的系统安装在其他目录,请指定正确的目录路径。以下所有命令假设您已经成功安装OpenSSL,将产生2048位的密钥,加密算法采用3DES,您必须使用您要申请SSL证书的域名来命名密钥文件。生成key和csr等都可以在任意计算机上生成,只要生成好拷贝到服务器即可。

  步骤:

    第一种,分步生成私钥和证书请求文件(CSR)

    1.生成私钥,此命令将生成2048位的RSA私钥,使用DES3算法,私钥文件名可任意命名,在Nginx配置中指定文件路径即可,会提示设定私钥密码,请设置密码,并牢记!!

openssl genrsa -des3 -out aaaa.key 

    此时生成的key是有密码的,可以使用如下命令去除密码,此步骤非必要,且需在第2步之后,即必须使用带密码的key来生成csr!

openssl rsa -in aaaa.key -out aaaa_nopwd.key 

    2.配合已生成的私钥生成证书请求文件(CSR)

openssl req -new -key aaaa.key -out aaaa.csr  

    PS:第2步命令将提示您输入X.509证书所要求的字段信息,包括国家(中国添CN)、省份、所在城市、单位名称、单位部门名称(可以不填直接回车)。请注意: 除国家缩写必须填CN外,其余都可以是英文或中文。请输入您要申请SSL证书的域名,如果您需要为www.domain.com申请SSL证书就不能只输入domain.com。SSL证书是严格绑定域名的。 请不要输入Email、口令(challenge password)和可选的公司名称(如果输入口令,每次启动服务器都会要求输入密码),直接打回车即可。 您现在已经成功生成了密钥对,私钥文件:www.yilexun.com.key 保存在您的服务器中, 请把CSR文件:www.yilexun.com.csr 发给证书服务公司(比如StartSSL)即可,各个含义如下:

Country Name (2 letter code): 使用国际标准组织(ISO)国码格式,填写2个字母的国家代号。中国请填写CN。
State or Province Name (full name): 省份,比如填写Shanghai
Locality Name (eg, city): 城市,比如填写Shanghai
Organization Name (eg, company): 组织单位,比如填写公司名称的拼音
Organizational Unit Name (eg, section): 比如填写IT Dept
Common Name (eg, your websites domain name): 行使 SSL 加密的网站地址。请注意这里并不是单指您的域名,而是直接使用 SSL 的网站名称 例如:pay.abc.com。 一个网站这里定义是: abc.com 是一个网站; www.abc.com 是另外一个网站; pay.abc.com 又是另外一个网站。
Email Address: 邮件地址,可以不填
A challenge password: 可以不填
An optional company name: 可以不填

    第二种,同时生成私钥和证书请求文件

openssl req -newkey rsa: -keyout aaaa.key -out aaaa.csr

  CSR文件必须要有CA的签名才能形成证书,可以将此CSR发给StartSSL(可免费)、verisign(一大笔钱)等地方由他来验证。也可以自己做CA,自己给自己颁发证书。

  首先生成CA证书和私钥

openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf

  在继续下面操作前,将openssl.cnf(可以使用locate命令查找)文件打开,查看其dir路径将其修改为dir = /home/openssl/bin/demoCA/,否则下面的步骤会提示路径无法找到。

mkdir -p /home/openssl/bin/demoCA/newcerts
touch /home/openssl/bin/demoCA/index.txt
echo "" >> /home/openssl/bin/demoCA/serial

  用生成的CA的证书为刚才生成的csr文件签名:

openssl ca -in aaaa.csr -out aaaa.crt -cert ca.crt -keyfile ca.key -config openssl.cnf

  这样生成的证书的序列号是01,如果用同一个CA证书重复以上步骤生成不同的server证书,这些证书都会拥有相同的序列号01。

  这在Firefox浏览器下会出现SEC_ERROR_REUSED_ISSUER_AND_SERIAL错误。改进办法:

    删除demoCA/serial文件,openssl ca后面增加一个参数-create_serial,这样就会生成一个随机的128bits的序列号,基本上能避免上述错误。

  aaaa.key、aaaa.csr、aaaa.crt;其中key和crt都是放在服务器上的。

Nginx-搭建https服务器的更多相关文章

  1. 利用nginx搭建https服务器

    一.HTTPS简介 HTTPS其实是有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块.服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加 ...

  2. Nginx搭建https服务器

    HTTPS简介 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单来讲就是HTTP的安全版.即H ...

  3. 使用nginx搭建https服务器

    http://www.cnblogs.com/tintin1926/archive/2012/07/12/2587311.html 最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输 ...

  4. 使用nginx搭建https服务器(转)

    最近在研究nginx,整好遇到一个需求就是希望服务器与客户端之间传输内容是加密的,防止中间监听泄露信息,但是去证书服务商那边申请证书又不合算,因为访问服务器的都是内部人士,所以自己给自己颁发证书,忽略 ...

  5. Nginx 搭建图片服务器

    Nginx 搭建图片服务器 本章内容通过Nginx 和 FTP 搭建图片服务器.在学习本章内容前,请确保您的Linux 系统已经安装了Nginx和Vsftpd. Nginx 安装:http://www ...

  6. Varnish,Nginx搭建缓存服务器

    Varnish,Nginx搭建缓存服务器 一. varnish 1.安装pcre库,兼容正则表达式 # tar -zxvf pcre-8.10.tar.gz # cd pcre-8.10 # ./co ...

  7. windows环境下基于nginx搭建rtmp服务器

    基于nginx搭建rtmp服务器需要引入rtmp模块,引入之后需重新编译nginx linux环境几个命令行就能实现编译,笔者未尝试,网上有很多教程. windows环境还需要安装一系列的编译环境,例 ...

  8. Nginx,Nginx 搭建图片服务器

    Nginx Nginx 概述 反向代理 工作流程 优点 1:保护了真实的web服务器,保证了web服务器的资源安全 2:节约了有限的IP地址资源 3:减少WEB服务器压力,提高响应速度 4:其他优点 ...

  9. NodeJS搭建HTTPS服务器

    [NodeJS搭建HTTPS服务器] http://cnodejs.org/topic/54745ac22804a0997d38b32d

  10. 其它 搭建https服务器

    原因是这样的,做了个淘宝的数据管理系统(仅供自己使用),然后需要淘宝卖家的生意参谋里面的一些数据,比如实时访客,里面有每个用户搜索什么关键字进来的,这些信息. 自己基于CefSharp开发了一个win ...

随机推荐

  1. ubuntu下openoffice开发环境配置

    安装openoffice或者liboffice 路径:/usr/lib/openoffice/program ,soffice 开启服务: 安装JDK 其默认路径:jdk7 版本号:1.7...,jd ...

  2. hdu 2072

    Ps:啊啊啊啊啊啊!WA了N次!真的是N次......终于做出来了...想哭的心情都有了... 这道题要考虑前面有N个空格,中间有N个空格,后面也有N个空格....然后就是输入空格.... 贴上代码: ...

  3. C++11 实现 argsort

    看python发现有这么个api,感觉很实用,想着stl里会不会有这个呢?查了半天毫无结果.于是用lambda自己实现了下. 以vector为例 template<typename T> ...

  4. VS2013失去智能提示如何恢复

    一般智能提示包括,输入智能提示,鼠标移到类,方法,接口,变量上面自动提示相关信息,VS2013常常会失去这种提示功能,遇到这种情况可以这样解决: 1.在开发环境中随便打开一个xxx.aspx页面,也就 ...

  5. jQuery轮播图

    yii2 轮播 样式: <style type="text/css"> *{margin:0;padding:0} body{margin:50px} li{list- ...

  6. BZOJ 4131 并行博弈

    发现必胜态只和(1,1)的状态有关. 无法得知必胜的方法,只知道谁会必胜. #include<iostream> #include<cstdio> #include<cs ...

  7. iOS常用设计模式:MVC、单例、代理、观察者。

    MVC 模型-视图-控制器(MVC)设计模式 MVC根据角色划分类,涉及到三个角色: Model:模型保存应用程序的数据. View:视图是模型的可视化表示以及用户交互的控件. Controller: ...

  8. Android启动组件的三种主流及若干非主流方式

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处 启动组件的一些方式,今天做一个简要的总结 Service:通过startService()启动,或者写 ...

  9. 查单神器v1.0 升级 →B站看鬼畜神器v1.0

    去年学校实习,我去了一家快递输单公司工作.工作任务就是把运单图片上的内容(寄件人,地址之类)输入到公司的数据库里.每天输单结束后,还要对一些容易错的运单进行排查.单量多的时候一天甚至要查千张以上的运单 ...

  10. Request的参数信息

    Request.ServerVariables["Url"] 返回服务器地址 Request.ServerVariables["Path_Info"] 客户端提 ...