zoukankan      html  css  js  c++  java
  • 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都是放在服务器上的。

  • 相关阅读:
    __file__ 作用以及模块导入方法
    random 模块
    time 模块
    module模块和包
    装饰器
    python闭包
    filter map reduce函数的使用
    python文件处理
    python内置函数使用
    函数
  • 原文地址:https://www.cnblogs.com/JohnABC/p/5986582.html
Copyright © 2011-2022 走看看