通过openssl搭建CA中心并验证签名证书有效
2014-03-25 17:26
381 查看
在linux下搭建CA中心,并在客户端验证CA签名是否正确:
在linux上搭建CA中心主要是通过openssl工具包进行的:
1.ca中心的文件夹结构树
1.cacert.pem是ca中心自签名证书。
2.certs是存放呗ca中心签名以后的证书。
3.index.txt记录ca中心签名记录。
4.openssl.cnf是CA中心的配置文件。
5.它确定该ca中心对用户提供的信息的验证方式。
6.private存放ca中心自己的私钥。
7.serial记录当前ca签证的编号。
openssl.cnf配置文件内容:
创建CA中心的密钥
创建CA的证书请求文件
创建CA的自签名证书
这样我们现在就已经有了CA中心的证书和密钥了,接下来我们需要使用CA中心的密钥签名其他服务或者个人的证书
创建用户的密钥
创建用户的证书请求文件
用CA的密钥和配置文件签证用户证书
使用被签证的用户证书加密信息
使用用户密钥解密信息
验证用户签名有效
在linux上搭建CA中心主要是通过openssl工具包进行的:
1.ca中心的文件夹结构树
demoCA/ |--cacert.pem |--certs | |--01.pem |--index.txt |--index.txt.attr |--openssl.cnf |--private | |--cakey.pem |--serial |--serial.old
1.cacert.pem是ca中心自签名证书。
2.certs是存放呗ca中心签名以后的证书。
3.index.txt记录ca中心签名记录。
4.openssl.cnf是CA中心的配置文件。
5.它确定该ca中心对用户提供的信息的验证方式。
6.private存放ca中心自己的私钥。
7.serial记录当前ca签证的编号。
openssl.cnf配置文件内容:
[ ca ] default_ca = exampleca [ exampleca ] dir = /opt/demoCA certificate = $dir/cacert.pem database = $dir/index.txt new_certs_dir = $dir/certs private_key = $dir/private/cakey.pem serial = $dir/serial default_crl_days = 7 default_days = 365 default_md = sha1 policy =demoCA_policy x509_extensions =certificate_extensions [ demoCA_policy ] commonName = supplied stateOrProvinceName = supplied countryName = supplied emailAddress = supplied organizationName = supplied organizationalUnitName = optional [ certificate_extensions ] basicConstraints = CA:false [ req ] default_bits = 2048 default_keyfile = /opt/demoCA/private/cakey.pem default_md = sha1 prompt = no distinguished_name = root_ca_distinguished_name x509_extensions = root_ca_extensions [ root_ca_distinguished_name ] commonName = Example CA stateOrProvinceName = BeiJing countryName = CN emailAddress = duanxiongchun@gmail.com organizationName = Root duan organizationalUnitName = duan CA [ root_ca_extensions ] basicConstraints = CA:true
创建CA中心的密钥
openssl genrsa -des3 -out demoCA/private/cakey.pem 2048
创建CA的证书请求文件
openssl req -new -days 365 -key ./demoCA/private/cakey.pem -out careq.pem
创建CA的自签名证书
openssl ca -selfsign -in careq.pem -out demoCA/cacert.pem -config demoCA/openssl.cnf
这样我们现在就已经有了CA中心的证书和密钥了,接下来我们需要使用CA中心的密钥签名其他服务或者个人的证书
创建用户的密钥
openssl genrsa -des3 -out userkey.pem 1024
创建用户的证书请求文件
openssl req -new -days 365 -key userkey.pem -out userreq.pem
用CA的密钥和配置文件签证用户证书
openssl ca -in userreq.pem -out usercert.pem -config demoCA/openssl.cnf
使用被签证的用户证书加密信息
openssl rsautl -encrypt -certin -inkey usercert.pem -in test.txt -out test.cipher
使用用户密钥解密信息
openssl rsautl -decrypt -inkey userkey.pem -in test.cipher -out test.crts
验证用户签名有效
openssl verify -CAfile demoCA/cacert.pem usercert.pem
相关文章推荐
- CentOS6.5环境下OpenSSL实战:自己搭建CA中心,申请,签发,吊销,导入证书,SSL 握手详解
- Linxu环境下如何使用Openssl搭建CA中心签发证书
- openssl如何制作自签名的CA证书,及利用CA签发证书
- 使用 Openssl 验证自签名证书
- 通过OPENSSL建立证书以及CSR证书签名过程
- 利用openssl验证X509证书是否是某CA签发
- Docker私有仓库Registry V2 搭建(附带CA证书自签名)
- 通过OpenSSL自签CA为Android服务器签发证书
- openssl 简单的https验证 自签名证书
- 使用OpenSSL实现CA证书的搭建过程
- OpenSSL使用1(用OpenSSL生成自签名证书在IIS上搭建Https站点)(用于iOS的https访问)
- CentOS通过OpenSSL生成自签名证书
- OpenSSL学习之使用个人信息数字证书(PFX)进行签名和验证
- 使用CA自签名证书搭建HTTPS网站
- Linux下如何颁发证书:学习使用openssl搭建一个CA
- 使用openssl的CA签发证书,签名applet[换博客10年3月]
- 使用OpenSSL实现CA证书的搭建过程
- openssl使用自定义CA签名证书
- 用openssl生成SSL使用的私钥和证书,并自己做CA签名