Linux下使用openssl制作CA及证书颁发
一. 创建CA (2)
1. 创建CA需要用到的目录和文件: (2)
2. 生成CA的私钥和自签名证书(即根证书) (2)
3. 创建一个配置文件,以便后续CA日常操作中使用: .. 3
二. CA的日常操作 (4)
1、创建私钥 (4)
2、查看创建的密钥 (4)
google账号
3、创建请求文件 (4)
4、查看创建的请求文件 (4)
5. 根据证书申请请求签发证书 (5)
6、执行签发命令: (5)
7. 吊销证书(作废证书) (5)
8. 生成证书吊销列表文件(CRL) (5)
9、制作PFX(p12)格式的证书 (6)
三. 自己生成公钥密钥,并用测试CA签发数字证书 (6)
1. 创建密钥和证书请求(证书请求里包含了公钥) (6)
2. 用测试CA为testuser签发证书 (6)
中秋节放假多少天
3. 制作一个PKCS12格式的文档(个人数字证书) (7)
四、openssl的其他所有参数 (7)
本文旨在利用开源openssl软件,在Linux(或UNIX/Cygwin)下创建一个简单的CA。我们可以利用这个CA进行PKI、数字证书相关的测试。比如,在测试用Tomcat或Apache 构建HTTPS双向认证时,我们可以利用自己建立的测试CA来为服务器端颁发服务器数字证书,为客户端(浏览器)生成文件形式的数字证书(可以同时利用openssl生成客户端私钥)。
该简单的CA将建立在用户自己的目录下($HOME/testca),无需超级用户(root)权限。
一. 创建CA
1. 创建CA需要用到的目录和文件:
执行命令如下:
mkdir "$HOME/testca"
cd "$HOME/testca"
历史学专业mkdir newcerts private conf
chmod g-rwx,o-rwx private
echo "01" > serial
说明:
$HOME/testca为待建CA的主目录。其中newcerts子目录将存放CA签署(颁发)过的数字证书(证书备份目录)。而private目录用于存放CA的私钥。目录conf只是用于存放一些简化参数用的配置文件。
文件serial和分别用于存放下一个证书的序列号和证书信息数据库。
当然,偷懒起见,可以只用按照本文操作即可,不一定需要关心各个目录和文件的作用。2. 生成CA的私钥和自签名证书(即根证书)
创建文件:
vi "$HOME/testca/f"
文件内容如下:
>>>>>>>#
[ req ]
default_keyfile = $ENV::HOME/testca/private/cakey.pem
default_md = md5
prompt = no
distinguished_name = ca_distinguished_name
x509_extensions = ca_extensions
[ ca_distinguished_name ]
organizationName = TestOrg
organizationalUnitName = TestDepartment
commonName = TestCA
emailAddress = ca_admin@testorg
[ ca_extensions ]
basicConstraints = CA:true
>>>>>>>>
空间怎么添加背景音乐然后执行命令如下:
cd "$HOME/testca"
openssl req -x509 -newkey rsa:2048 -out cacert.pem -outform PEM -days 2190 -config "$HOME/testca/f"
2013重阳节是几月几日
执行过程中需要输入CA私钥的保护密码,假设我们输入密码:888888
可以用如下命令查看一下CA自己证书的内容
openssl x509 -in cacert.pem -text -noout
3. 创建一个配置文件,以便后续CA日常操作中使用:
vi "$HOME/testca/f"
文件内容如下:
>>>>>>>#
[ ca ]
default_ca = testca # The default ca section
[ testca ]
dir = $ENV::HOME/testca # top dir
database = $ # index file.
new_certs_dir = $dir/newcerts # new certs dir
certificate = $dir/cacert.pem # The CA cert
serial = $dir/serial # serial no file
private_key = $dir/private/cakey.pem # CA private key
RANDFILE = $dir/private/.rand # random number file
default_days = 365 # how long to certify for
default_crl_days= 30 # how long before next CRL
default_md = md5 # message digest method to use unique_subject = no # Set to 'no' to allow creation of
# several ctificates with same subject. policy = policy_any # default policy
[ policy_any ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
>>>>>>>>
二. CA的日常操作
1、创建私钥
openssl genrsa -des3 -out client.key 1024 (创建密钥)
2、查看创建的密钥
openssl rsa -noout -text -in client.key (查看创建的密钥)
3、创建请求文件
openssl req -new -key client.key -out client.csr(查看请求文件)
4、查看创建的请求文件
省控线是什么意思openssl req -noout -text -in client.csr (查看创建的请求)
5. 根据证书申请请求签发证书
假设收到一个证书请求文件名为req.pem,文件格式应该是PKCS#10格式(标准证书请求格式)。
首先可以查看一下证书请求的内容,执行命令:
openssl req -in req.pem -text -noout
将看到证书请求的内容,包括请求者唯一的名字(DN)、公钥信息(可能还有一组扩展的可选属性)。
6、执行签发命令:
>可以>###
openssl x509 -req -q -out test.pem -CA cacert.pem -CAkey privkey.pem -CAcreateserial -days 3650 //没有创建配置文件conf时的命令操作,签发证书。
>>>#/////
openssl ca -in req.pem -out cert.pem -config "$HOME/testca/f"
执行过程中会要求输入访问CA的私钥密码(刚才设置的888888)。
完成上一步后,签发好的证书就是cert.pem,另外$HOME/testca/newcerts里也会有一个相同的证书
副本(文件名为证书序列号)。
你可以执行以下语句来查看生成的证书的内容:
openssl x509 -in cert.pem -text -noout
7. 吊销证书(作废证书)
一般由于用户私钥泄露等情况才需要吊销一个未过期的证书。(当然我们用本测试CA时其时很少用到该命令,除非专门用于测试吊销证书的情况)
假设需要被吊销的证书文件为cert.pem,则执行以下命令吊销证书:
openssl ca -revoke cert.pem -config "$HOME/testca/f"
8. 生成证书吊销列表文件(CRL)
8.1、准备公开被吊销的证书列表时,可以生成证书吊销列表(CRL),执行命令如下:
openssl ca -gencrl -l -config "$HOME/testca/f"
还可以添加-crldays和-crlhours参数来说明下一个吊销列表将在多少天后(或多少小时候)发布。
8.2、可以用以下命令检查l的内容:
openssl crl -l -text –noout

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论