• linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改


    原文地址:http://www.cnblogs.com/firtree/p/4028354.html

    linux下利用openssl来实现证书的颁发(详细步骤)

    1、首先需要安装openssl,一个开源的实现加解密和证书的专业系统。在centos下可以利用yum安装。

    2、openssl的配置文件是openssl.cnf,我们一般就是用默认配置就可以。如果证书有特殊要求的话,可以修改配置适应需求。这样必须把相关的文件放到配置文件指定的目录下面。

    3、首先需要利用openssl生成根证书,以后的服务器端证书或者客户端证书都用他来签发,可以建立多个根证书,就像对应不同的公司一样

       #生成根证书的私钥 

    openssl genrsa -out /home/lengshan/ca.key

    用openssl创建CA证书的RSA密钥(PEM格式):

    openssl genrsa -des3 -out ca.key 1024 

      #利用私钥生成一个根证书的申请,一般证书的申请格式都是csr。所以私钥和csr一般需要保存好

    openssl req -new -key /home/lengshan/ca.key -out /home/lengshan/ca.csr

      #自签名的方式签发我们之前的申请的证书,生成的证书为ca.crt

    openssl x509 -req -days 3650 -in /home/lengshan/ca.csr -signkey /home/lengshan/ca.key -out /home/lengshan/ca.crt

      #为我们的证书建立第一个序列号,一般都是用4个字符,这个不影响之后的证书颁发等操作

    echo FACE > /home/lengshan/serial

      #建立ca的证书库,不影响后面的操作,默认配置文件里也有存储的地方

    touch /home/lengshan/index.txt

      #建立证书回收列表保存失效的证书

    openssl ca -gencrl -out /home/lengshan/ca.crl -crldays 7

    已上就完成了根证书的相关操作,下一步可以颁发证书了。

    4、生成和签发服务器身份验证证书,注意证书是自签名的,浏览器会提示不受信任

      #建立服务器验证证书的私钥

    openssl genrsa -out /home/lengshan/server.key

      #生成证书申请文件

    openssl req -new -key /home/lengshan/server.key -out /home/lengshan/server.csr

      #利用根证书签发服务器身份验证证书

    openssl ca -in /home/lengshan/server.csr -cert /home/lengshan/ca.crt -keyfile /home/lengshan/ca.key -out /home/lengshan/server.crt

    至此,服务器端身份认证证书已经完成,可以利用证书和私钥生成pfx格式的证书给微软使用,命令如下:

    openssl pkcs12 -export -clcerts -in /home/lengshan/server.crt -inkey /home/lengshan/server.key -out /home/lengshan/server.p12

    5、签发客户端身份认证证书

      #生成私钥

    openssl genrsa -des3 -out /home/lengshan/users/1/1.key 1024

      #生成证书请求文件

    openssl req -new -key /home/lengshan/users/1/1.key -out /home/lengshan/users/1/1.csr

      #签发证书

    openssl ca -in /home/lengshan/users/1/1.csr -cert /home/lengshan/ca.crt -keyfile /home/lengshan/users/1/1.crt

      #生成pfx格式

    openssl pkcs12 -export -clcerts -in /home/lengshan/users/1/1.crt -inkey /home/lengshan/users/1/1.key -out /home/lengshan/users/1/1.p12

    客户端证书完成,注意如果在web服务器上使用客户端证书,需要在web服务器上使用根证书对客户端进行验证,切记!

    6、x509转换为pfx

    openssl pkcs12 -export -out server.pfx -inkey server.key -in server.crt     

    openssl pkcs12 -export -clcerts -in client.crt -inkey client.key -out client.p12


    7、
    How to Convert PFX Certificate to PEM Format for SOAP
    
    
    $ openssl pkcs12 -in test.pfx -out client.pem  
    Enter Import Password:
    MAC verified OK
    Enter PEM pass phrase:
    Verifying - Enter PEM pass phrase:
     

    注释:1、证书的主题名称(Subject)在Internet中是唯一的。此字段必须是非空的,除非在扩展项中使用了其他的名字形式。

    p12格式的证书和pfx格式的证书是一样的。

    2、上述操作的过程中,根据错误提示创建相应的文件夹和文件,移动文件到指定的目录

    3、使用openssl进行证书格式转换

    数字证书资料cer和pfx的区别

    数字证书文件cer和pfx的区别

    作为文件形式存在的证书一般有这几种格式:

      1.带有私钥的证书

      由Public Key Cryptography Standards #12,PKCS#12标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx作为证书文件后缀名。

      2.二进制编码的证书

      证书中没有私钥,DER 编码二进制格式的证书文件,以cer作为证书文件后缀名。

      3.Base64编码的证书

    证书中没有私钥,BASE64 编码格式的证书文件,也是以cer作为证书文件后缀名。

    由定义可以看出,只有pfx格式的数字证书是包含有私钥的,cer格式的数字证书里面只有公钥没有私钥。

     

      在pfx证书的导入过程中有一项是“标志此密钥是可导出的。这将您在稍候备份或传输密钥”。一般是不选中的,如果选中,别人就有机会备份你的密钥了。如果是不选中,其实密钥也导入了,只是不能再次被导出。这就保证了密钥的安全

      如果导入过程中没有选中这一项,做证书备份时“导出私钥”这一项是灰色的,不能选。只能导出cer格式的公钥。如果导入时选中该项,则在导出时“导出私钥”这一项就是可选的。

       如果要导出私钥(pfx),是需要输入密码的,这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx),不知道加 密私钥的密码,也是无法导入证书的。相反,如果只是导入导出cer格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密

  • 相关阅读:
    msp430入门学习30
    msp430入门学习03
    msp430入门学习27
    msp430入门学习26
    msp430入门学习25
    msp430入门学习24
    msp430入门学习23
    msp430入门学习22
    去掉xcode中警告的一些经验
    CocoaPods详解之----使用篇
  • 原文地址:https://www.cnblogs.com/shengulong/p/5935447.html
Copyright © 2020-2023  润新知