zoukankan      html  css  js  c++  java
  • CentOS6系统openssl生成证书和自签证书

    CentOS6系统openssl生成证书和自签证书的过程,记录一下,本文基于CentOS 6 64bit。
    $ yum install openssl openssl-devel


    1,生成服务器端的私钥(key文件)
    $ openssl genrsa -des3 -out server.key 1024

    此时会提示输入密码(PEM pass phrase,必须输入),此密码用于加密key文件(参数des3便是指加密算法)。
    以后每当需读取此文件(通过openssl提供的命令或API)都需输入密码(PEM pass phrase)。例如把key文件引入Nginx等第三方软件配置https,在启动Nginx的时候同样会要求输入密码。
    如果觉得不方便,也可以去除这个密码,但一定要采取其他的保护措施
    去除key文件的密码:openssl rsa -in server.key -out server.key


    2,生成Certificate Signing Request(CSR)
    $ openssl req -new -key server.key -out server.csr -config /etc/pki/tls/openssl.cnf

    生成的csr文件交给CA签名后形成服务端自己的证书。屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可
    Country Name (2 letter code) [XX]:CN           #国家名称(2个字母代码)[某某]:
    State or Province Name (full name) []:GD        #国家或省名称(全称)[ ]:广东
    Locality Name (eg, city) [Default City]:GZ    #地点名称(例如,城市)[默认城市]
    Organization Name (eg, company) [Default Company Ltd]:SZuniversity    #机构名称(如公司)[公司]
    Organizational Unit Name (eg, section) []:SZunivertiy                               #组织单位名称(如部分)
    Common Name (eg, your name or your server's hostname) []:xxx  #常见的名字(例如,您的姓名或您的服务器的主机名)[ ]   ,在浏览器选择证书的时候显示的名字
    Email Address []:test@qq.com                                         #邮箱,随便填

    Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:                   #不填
    An optional company name []:               #不填


    3,对客户端也作同样的命令生成key及csr文件
    $ openssl genrsa -des3 -out client.key 1024   #如果服务端去掉了密码,这里也要去掉
    $ openssl req -new -key client.key -out client.csr -config /etc/pki/tls/openssl.cnf


    4,生成CA文件
    CSR文件必须有CA的签名才可形成证书,可将此文件发送到verisign等地方由它验证(需要收费),这里我们自己制作一个CA
    $ openssl req -new -x509 -keyout ca.key -out ca.crt -config /etc/pki/tls/openssl.cnf


    5,用生成的CA的证书为刚才生成的server.csr和client.csr文件签名
    $ touch /etc/pki/CA/index.txt
    $ echo "00" > /etc/pki/CA/serial
    $ openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config /etc/pki/tls/openssl.cnf
    $ openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config  /etc/pki/tls/openssl.cnf

    client使用的文件有:ca.crt,client.crt,client.key
    server使用的文件有:ca.crt,server.crt,server.key
    .crt文件和.key可以合到一个文件里面,

    将客户端证书文件client.crt和客户端证书密钥文件client.key合并成客户端证书安装包client.pfx
    openssl pkcs12 -export -in client.crt -inkey client.key -out client.pfx


    可能出现的错误:
    1,执行第5步使用CA证书为csr文件签名的时候,提示
    failed to update database
    TXT_DB error number 2
    解决办法:
    $ rm -rf /etc/pki/CA/index.txt
    $ touch /etc/pki/CA/index.txt

  • 相关阅读:
    eclipse配置
    TableViewComponent v2
    4500装机指南
    【翻译】Ext JS 4——Ajax和Rest代理处理服务器端一场和消息的方法
    【翻译】Ext JS——高效的编码风格指南
    JDK8帮助文档生成-笔记
    【翻译】在Ext JS 5种使用ViewControllers
    【翻译】Ext JS最新技巧——2014-5-12
    PS图像特效算法——百叶窗
    人脸表情识别常用的几个数据库
  • 原文地址:https://www.cnblogs.com/liang-wei/p/6146394.html
Copyright © 2011-2022 走看看