zoukankan      html  css  js  c++  java
  • linux中openssl生成证书和自签证书

    1.首先要生成服务器端的私钥(key文件):

       命令:

    openssl genrsa -des3 -out server.key 1024

    运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令

    2. 对服务端生成CSR和key

       命令:

    openssl req -new -key server.key -out server.csr -config /etc/pki/tls/openssl.cnf

    生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.

    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.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文件签名:

    命令:

    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

    遇到的问题:

    如果提示没有/etc/pki/CA/index.txt 或者serial文件,那么就按照路径新建文件即可。

    3078239980:error:0D066096:asn1 encoding routines:a2i_ASN1_INTEGER:short line:f_int.c:215:
    提示error while loading serial number,一般是因为serial文件中没有赋初值
    解决办法
    [root@test1 ~]#cd /etc/pki/CA
    [root@test1 CA]# echo "00" >serial
    [root@test1 CA]# cat serial
    00

    还有一个问题在CA签名时,最后出现failed to update database错误

    遇到这个错误,只需要清空/etc/pki/CA/index.txt的内容再签发就可以成功了。

    修改CA的一些配置文件

    vi /etc/pki/tls/openssl.cnf


    default_days = 3650 修改证书有效期
  • 相关阅读:
    springboot 踩坑之表单验证
    爬虫学习研究
    selenium+chrome知识
    每天学一点linux命令
    Javascript禁止子元素继承父元素的事件
    sass编译css(转自阮一峰)
    php配置虚拟主机的配置步骤(hosts、httpd.conf、vhosts.conf)1.配置本地的dns文件2.配置apache的主配置文件3.配置Apache的虚拟主机
    修改原代码定制bootstrap
    网页在线进行标准验证
    浏览器兼容性判定写法格式(ie)
  • 原文地址:https://www.cnblogs.com/gradven/p/5353256.html
Copyright © 2011-2022 走看看