zoukankan      html  css  js  c++  java
  • 网站私有CA证书制作

              所谓的网站安全证书 是通过在客户端浏览器和Web服务器之间建立一条SSL安全通道保证了双方传递信息的安全性,而且用户可以通过服务器证书验证他所访问的网站是否真实可靠。

    大体步骤:

    1)签名发送方(甲)对需要发送的明文使用杂凑算法,计算摘要;
    2)甲使用其签名私钥对摘要进行加密,得到密文;
    3)甲将密文、明文和签名证书发送给签名验证方(乙);
    4)乙方验证签名证书的有效性,并一方面将甲发送的密文通过甲的签名证书解密得到摘要,另一方面将明文相同的杂凑算法计算出摘要;
    5)乙对比两个摘要,如果相同,服务器证书则可以确认明文在传输过程中没有被更改,并且信息是由证书所申明身份的实体发送的。
    签名私钥配合杂凑算法的使用,可以完成服务器/网站安全证书功能。而对服务器/网站安全证书和签名发送方的身份的确认,就需要通过CA对其身份认证进行验证。
     

    创建私有CA:

    openssl的配置文件:/etc/pki/tls/openssl.cnf
    三种策略:匹配、支持和可选
    匹配指要求申请填写的信息跟CA设置信息必须一致,支持指必
    须填写这项申请信息,可选指可有可无

    1、创建所需要的文件
    touch /etc/pki/CA/index.txt 生成证书索引数据库文件
    echo 01 > /etc/pki/CA/serial 指定第一个颁发证书的序列号                                                     #此处数字必须为两位数
    2、 CA自签证书
    生成私钥
    cd /etc/pki/CA/                                                                                                                         #路径很重要,默认的按照配置文件里的来
    (umask 066; openssl genrsa -out
    /etc/pki/CA/private/cakey.pem 2048)

    3     创建CA

    openssl req -new -x509 /etc/pki/CA/private/cakey.pem -days 7300 /etc/pki/CA/cacert.pem     #路径很重要,默认的按照配置文件里的来

    查看证书命令 openssl x509 -in cakey.pem -noout -text  #如果不在/etc/pki/CA/private目录则路径cakey.pem文件要换成局对路径。

    客户端上申请证书步骤:

    1   (umask 066; openssl genrsa -out /app/service.key -des 1024)           #因为客户端生成私钥没有要求所以一般自由决定放的位置。

    2    openssl req -new -key /app/service.key -out /app/service.csr             #客户端申请证书

    
    

    Country Name (2 letter code) [XX]:CN             #默认必填,必须和根证书内容一致
    State or Province Name (full name) []:HN         #默认必填,必须和根证书内容一致
    Locality Name (eg, city) [Default City]:ZHENGZHOU
    Organization Name (eg, company) [Default Company Ltd]:chykj.com         #默认必填,必须和根证书内容一致
    Organizational Unit Name (eg, section) []:amoukj
    Common Name (eg, your name or your server's hostname) []:chykj.com      #默认必填,必须和根证书内容一致
    Email Address []:
    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:amoukj                                           #可选填
    An optional company name []:chykj.com                                    #可选填

    (1,2,4,6项要求和根证书资料保持一致,其他选填即可)

    3 上传客户端生成的请求证书到根证书服务器

    openssl ca -in /etc/pki/CA/csr/service.csr -out /etc/pki/CA/certs/service.crt -days 365  #输出的格式一般是crt或cer

    三  证书的状态查询及如何吊销

     1  查看证书中的信息

    openssl x509 -in /PATH/FROM/CERT_FILE -noout -text |issuer|subject|serial|dates

    openssl ca -status SERIAL  查看指定编号的证书状态

    2   在客户端获取要吊销的证书的serial

    openssl x509 -in /PATH/FROM/CERT_FILE -noout -serial -subject

     3   指定第一个吊销证书的编号

    注意:第一次更新证书吊销列表前,才需要执行

    echo 01 > /etc/pki/CA/crlnumber

         更新证书吊销列表

    openssl ca -gencrl -out /etc/pki/CA/crl/crl.pem

         查看crl文件:

    openssl crl -in /etc/pki/CA/crl/crl.pem -noout -text

    4   在CA上,根据客户提交的serial与subject信息,对比校验是否与index.txt文件中的信息一致,吊销证书

    openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

    备注:在etc/pki/CA目录里有个index.txt.attr文件  unique_subject = yes  #即为证书内容的唯一性,是否允许相同内容的证书同时存在。

  • 相关阅读:
    http://www.reg007.com/
    快速入门:十分钟学会Python(转)
    Python入门教程 超详细1小时学会Python(转)
    值得关注的10个python语言博客(转)
    【.NET特供-第三季】ASP.NET MVC系列:MVC与三层图形对照
    LeetCode——Spiral Matrix
    HTML中Select的使用具体解释
    为什么没有好用的Android游戏引擎?
    Map.EntrySet的使用方法
    jquery 仅仅读
  • 原文地址:https://www.cnblogs.com/chenyongmou/p/7500951.html
Copyright © 2011-2022 走看看