openssl 制作证书
程序员文章站
2022-07-12 21:55:58
...
一.生成证书
首先要生成服务器端的私钥(key文件):
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.
Openssl.cnf文件一定要在当前目录下存在,另外在相应目录中(由openssl.cnf的相关配置项确定)建立 index.txt 空文件, serial文件 , serial文件 中可输入01。
上图中在usr/share/ssl/目录下创建/demoCA目录,并将serial和index.txt放在该目录下【还有newcerts文件夹】:
================================================================
对客户端也作同样的命令生成key及csr文件:
================================================================
CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.
=================================================================
用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
现在我们所需的全部文件便生成了.
另:
client使用的文件有:ca.crt,client.crt,client.key
server使用的文件有:ca.crt,server.crt,server.key
.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)
二.格式转换问题
IE不能导入pem格式证书需要转换成pfx格式的以下是将x509格式转换成pfx格式的命令:
三.证书吊销
三.制作中文证书
1.假设配置文件为openssl.cnf,编辑修改如下内容:
string_mask=utf8only
countryName_default=CN stateOrProvinceName_default=省份
localityName_default=城市 O.organizationName_default=部门
organizationalUnitName_default=单位 commonName_default=名字
2.用iconv命令将文件格式转换为UTF-8编码:
iconv -f gbk -t utf-8 openssl.cnf > utf8_openssl.cnf
--------------------------------------------------------------
CA
openssl req -x509 -new -days 365 -keyout cnca.key -out cnca.crt -config utf8_openssl.cnf
---------------------------------------------------------------
openssl genrsa -des3 -out cnclient.key 1024
openssl req -utf8 -new -key cnclient.key -out cnclient.csr -config utf8_openssl.cnf
openssl ca -utf8 -in cnclient.csr -out cnclient.crt -cert cnca.crt -keyfile cnca.key -config utf8_openssl.cnf
openssl pkcs12 -export -inkey cnclient.key -in cnclient.crt -out cnclient.pfx
首先要生成服务器端的私钥(key文件):
openssl genrsa -des3 -out server.key 1024
运行时会提示输入密码,此密码用于加密key文件(参数des3便是指加密算法,当然也可以选用其他你认为安全的算法.),以后每当需读取此文件(通过openssl提供的命令或API)都需输入口令.如果觉得不方便,也可以去除这个口令,但一定要采取其他的保护措施!
去除key文件口令的命令:
openssl rsa -in server.key -out server.key
openssl req -new -key server.key -out server.csr -config openssl.cnf
生成Certificate Signing Request(CSR),生成的csr文件交给CA签名后形成服务端自己的证书.屏幕上将有提示,依照其指示一步一步输入要求的个人信息即可.
Openssl.cnf文件一定要在当前目录下存在,另外在相应目录中(由openssl.cnf的相关配置项确定)建立 index.txt 空文件, serial文件 , serial文件 中可输入01。
上图中在usr/share/ssl/目录下创建/demoCA目录,并将serial和index.txt放在该目录下【还有newcerts文件夹】:
================================================================
对客户端也作同样的命令生成key及csr文件:
openssl genrsa -des3 -out client.key 1024
openssl req -new -key client.key -out client.csr -config openssl.cnf
================================================================
CSR文件必须有CA的签名才可形成证书.可将此文件发送到verisign等地方由它验证,要交一大笔钱,何不自己做CA呢.
openssl req -new -x509 -days 365 -keyout ca.key -out ca.crt -config openssl.cnf
=================================================================
用生成的CA的证书为刚才生成的server.csr,client.csr文件签名:
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
openssl ca -in client.csr -out client.crt -cert ca.crt -keyfile ca.key -config openssl.cnf
现在我们所需的全部文件便生成了.
另:
client使用的文件有:ca.crt,client.crt,client.key
server使用的文件有:ca.crt,server.crt,server.key
.crt文件和.key可以合到一个文件里面,本人把2个文件合成了一个.pem文件(直接拷贝过去就行了)
二.格式转换问题
IE不能导入pem格式证书需要转换成pfx格式的以下是将x509格式转换成pfx格式的命令:
openssl pkcs12 -export -inkey client.key -in client.crt -out client.pfx
三.证书吊销
openssl ca -revoke client.crt -keyfile ca.key -certfile ca.crt -config openssl.cnf
三.制作中文证书
1.假设配置文件为openssl.cnf,编辑修改如下内容:
string_mask=utf8only
countryName_default=CN stateOrProvinceName_default=省份
localityName_default=城市 O.organizationName_default=部门
organizationalUnitName_default=单位 commonName_default=名字
2.用iconv命令将文件格式转换为UTF-8编码:
iconv -f gbk -t utf-8 openssl.cnf > utf8_openssl.cnf
--------------------------------------------------------------
CA
openssl req -x509 -new -days 365 -keyout cnca.key -out cnca.crt -config utf8_openssl.cnf
---------------------------------------------------------------
openssl genrsa -des3 -out cnclient.key 1024
openssl req -utf8 -new -key cnclient.key -out cnclient.csr -config utf8_openssl.cnf
openssl ca -utf8 -in cnclient.csr -out cnclient.crt -cert cnca.crt -keyfile cnca.key -config utf8_openssl.cnf
openssl pkcs12 -export -inkey cnclient.key -in cnclient.crt -out cnclient.pfx
上一篇: AcWing 429. 奖学金(寒假每日一题)入门组
下一篇: openssl生成证书