原文地址: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格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密

转载于:https://www.cnblogs.com/shengulong/p/5935447.html

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

  1. linux配置文件密码加密工具,Linux下利用openssl对文件进行加密和解密

    转载地址:http://hi.baidu.com/edeed/item/99206a096b62d0e1ff240db8 --建立文件test.txt, 特意写入中英文# cd /tmp # echo ...

  2. crt证书linux使用,linux下使用openssl生成https的crt和key证书

    x509证书一般会用到三类文,key,csr,crt Key 是私用密钥openssl格,通常是rsa算法. Csr 是证书请求文件,用于申请证书.在制作csr文件的时,必须使用自己的私钥来签署申,还 ...

  3. openssl生成证书linux,Linux下使用openssl生成证书

    利用OpenSSL生成库和命令程序,在生成的命令程序中包括对加/解密算法的测试,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的证书文件以及CA文件. 证书文件的生成步骤: ...

  4. linux开机自启动python脚本_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  5. python脚本自动运行失败_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  6. python程序开机自启动_Linux下Python脚本自启动和定时启动的详细步骤

    一.Python开机自动运行 假如Python自启动脚本为 auto.py .那么用root权限编辑以下文件: sudo vim /etc/rc.local 如果没有 rc.local 请看 这篇文章 ...

  7. linux 运行ca.crt,linux下使用openssl生成 csr crt CA证书,opensslcsr

    linux下使用openssl生成 csr crt CA证书,opensslcsr 本文主要借鉴和引用了下面2个地址的内容,然后在自己的机器上进行了测试和执行,并做了如下记录. ref: http:/ ...

  8. Linux下使用OpenSSL生成证书

    Linux下使用OpenSSL生成证书 安装OpenSSL 直接用apt或者yum安装即可 生成服务器端的私钥(key文件) $ openssl genrsa -des3 -out server.ke ...

  9. linux下使用openssl和md5sum加密文件或者字符串

    linux下使用openssl和md5sum加密文件或者字符串 前言 1 用oppnssl md5 加密字符串和文件的方法 1.1 oppnssl md5 加密字符串的方法 a.手动输入命令及过程如下 ...

最新文章

  1. 智能提示导致Visual Studio 2010崩溃问题
  2. Mac OS X下查看CPU信息
  3. java多个mapreduce_java – 在hadoop中运行多个MapReduce作业
  4. Linux DNS视图脑裂的实例操作(四)
  5. 关于java中很多人用get()和set()方法,而不用public的一点总结
  6. 软件质量与测试 黑盒测试
  7. 软件测试必读的七本书
  8. 美丽的回测 —— 教你定量计算过拟合概率
  9. c语言 面试前必备基础知识
  10. android基础知识1
  11. Hive 内部表和外部表
  12. codeforces A. Parity
  13. python爬虫英文单词_利用PYTHON 爬虫爬出自己的英语单词库
  14. 京东VC后台自动批量上传主图 大聪明自动传主图 c# selenium网页自动化传图
  15. 天池数据竞赛docker提交操作学习
  16. pattern和match的用法 java篇
  17. android免root读写u盘最新方法,支持安卓Q+
  18. 答题小程序为何那么火?
  19. 对接支付宝手机网站支付接口,alin10071
  20. 复选框checkbox实现批量删除

热门文章

  1. 队列加锁无锁栈实现一例
  2. Fedora 下安装Mplayer(添加源和解决错误问题)
  3. 多媒体互动受青睐,演绎未来3G网络
  4. beats 耳机 android,Beats耳机app
  5. 21天学MySQL_把整个Mysql拆分成21天,轻松掌握,搞定(下)
  6. 为什么我们要放弃win10 去使用deepinv20和ous呢
  7. 脑细胞膜等效神经网路训练代码
  8. 使用迁移学习不断的自我纠正神经网络
  9. JavaWeb系列之:Servlet
  10. 用Python爬取WordPress官网所有插件