Nginx-搭建https服务器

  先看Nginx中的配置

server {
    listen 443;
    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 2048

    此时生成的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:2048 -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 "01" >> /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都是放在服务器上的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值