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、上述操作的过程中,根据错误提示创建相应的文件夹和文件,移动文件到指定的目录
数字证书资料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格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密
linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改的更多相关文章
- linux下利用openssl来实现证书的颁发(详细步骤)
1.首先需要安装openssl,一个开源的实现加解密和证书的专业系统.在centos下可以利用yum安装. 2.openssl的配置文件是openssl.cnf,我们一般就是用默认配置就可以.如果证书 ...
- Linux下生成openssl自签名证书
校验证书是否被 CA 证书签名,正确的情况: $ openssl verify -CAfile /etc/kubernetes/cert/ca.pem /etc/kubernetes/cert/kub ...
- linux下ftp(vsftpd)添加用户及设置权限详细步骤
1.环境:ftp为vsftp.被限制用户名为test.被限制路径为/home/test2.建用户:在root用户下:useradd test //增加用户test,并制定test用户的主目录为/hom ...
- linux下Tomcat+OpenSSL配置单向&双向认证(自制证书)
背景 由于ios将在2017年1月1日起强制实施ATS安全策略,所有通讯必须使用https传输,本文只针对自制证书,但目前尚不确定自制证书是否能通过appstore审核. 1.必须支持传输层安全(TL ...
- 利用openssl构建根证书-服务器证书-客户证书
利用openssl构建根证书-服务器证书-客户证书 OpenSSL功能远胜于KeyTool,可用于根证书,服务器证书和客户证书的管理 一.构建根证书 1.构建根证书前,需要构建随机数文件(.rand) ...
- 使用c语言实现在linux下的openssl客户端和服务器端编程
使用c语言实现在linux下的openssl客户端和服务器端编程 摘自:https://www.cnblogs.com/etangyushan/p/3679457.html 前几天组长让我实现一个使用 ...
- 【java】 linux下利用nohup后台运行jar文件包程序
Linux 运行jar包命令如下: 方式一: java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 ...
- linux下利用elk+redis 搭建日志分析平台教程
linux下利用elk+redis 搭建日志分析平台教程 http://www.alliedjeep.com/18084.htm elk 日志分析+redis数据库可以创建一个不错的日志分析平台了 ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
随机推荐
- [JavaScript] 怎么使用JS禁止复制粘贴
1. 将彻底屏蔽鼠标右键,其实是禁止快捷菜单,因为不光右键可以弹出这个菜单,键盘上空格键右边的windows键也可以激活这个快捷菜单 <table border oncontextmenu=re ...
- MySQL查询表结构的SQL小结
mysql查看表结构命令,如下: desc 表名; show columns from 表名; describe 表名; show create table 表名; 示例: use testDB; # ...
- 131. Palindrome Partitioning
题目: Given a string s, partition s such that every substring of the partition is a palindrome. Return ...
- 【HDOJ】1297 Children’s Queue
递推,最近发现自己做递推的题总是没有思路.下周多练习.对于f(n)可以在第n个位置为男生,此时共有f(n-1)种情况:若在第n个位置为女生,因此第n-1个位置也必须为女生.此时有两种情况,一种情况是在 ...
- nginx-rrd监控nginx访问数
一 .查看已安装的nginx是否包含stub_status模块 /usr/local/nginx/sbin/nginx -V nginx version: Nginx/1.2.0 configure ...
- oracle rac scan ip 用途 原理
Oracle 11G R2 RAC增加了scan ip功能,在11.2之前,client链接数据库的时候要用vip,假如你的cluster有4个节点,那么客户端的tnsnames.ora中就对应有四个 ...
- Spring Timer 两种实现
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz.1.Java Timer定时 首先继承java.util.TimerTask类实现run方法 impo ...
- C# 如何获取某个类型或类型实例对象的大小
在统计类型或类型实例对象时,出了个异常: “不能作为非托管结构进行封送处理;无法计算有意义的大小或偏移量.” 后来查了一下,原来,我们创建的struct或是class都是属于复杂类型的.(纠正一下,如 ...
- selenium2.0 处理各种窗口问题解决方法
selenium2.0处理muti-Windows . Frames .Popup Dialogs selenium2.0处理多窗口,弹窗等,只需要调用WebDriver 嵌套类:TargetLoca ...
- yarn环境的搭建
1.首先,在zookeeper搭建成功,服务运行的基础上搭建yarn,其次,保证时间一致 2.在 /home/install/hadoop-2.5/etc/hadoop目录下配置一下几个配置文件: 第 ...