OpenSSL使用记录
openssl的功能主要包括对称加解密、计算哈希(信息摘要)和发布证书。
加解密
openssl enc -e -aes-128-cbc -in main.c -out main.enc
openssl enc -d -aes-128-cbc -in main.enc -out main_out.c
计算摘要
$ openssl dgst -sha1 main.c
SHA1(main.c)= cc9bf223848c972e66968fb3846fc7f85721796e
$ echo "\n" >> main.c
$ openssl dgst -sha1 main.c
SHA1(main.c)= 52019cdc4aea16ee68f4d881465f6b8f03cf1836
自建CA并签发&撤销证书
更改文件目录设置
# CA目录
dir=/home/yanglei/Workspace/ssl
# 证书目录
certs=$dir/certs
# 证书备份目录
new_certs_dir=$dir/newcerts
# CA证书
certificate=$dir/cacert.pem
# CA数据库
database=$dir/CA/index.txt
# CA序列号
serial=$dir/CA/serial
# 吊销证书目录
crl_dir=$dir/crl
# 吊销证书编号
crlnumber=$dir/crlnumber
crl=$dir/crl.pem
# CA私钥目录
privatekey=$dir/private/cakey.pem
创建文件夹certs、newcerts、CA、private、crl
创建文件crlnumber(注意写入echo 01 > crlnumber)
创建文件CA/index.txt、CA/serial(注意写入echo 01 > serial)
创建随机数private/.rand
证书字段
Country Name(C)国家
State or Province Name(S)省
Locatily Name(L)市
Organization Name(O)组织名
Organization Unit Name(OU)补充
Common Name(CN)通常为域名/网址
Email Address
生成自签名证书
# /home/yanglei/Workspace/ssl
$ openssl genrsa -out private/cakey.pem 1024
$ openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 3650
# 或者先生成请求再签名
$ openssl req -new -key xxx.pem -out xxx.csr
$ openssl x509 -req -in xxx.csr -signkey cakey.pem -out xxx.crt
签发证书
# /home/yanglei/Workspace/testssl
$ openssl genrsa -out user1.pem 1024
$ openssl rsa -in user1.pem -out user1.pub -pubout
$ openssl req -new -key user1.pem -out user1.csr -days 365
# /home/yanglei/Workspace/ssl
$ openssl ca -in ../testssl/user1.csr -out certs/user1.crt -days 365
$ openssl x509 -in certs/user1.crt -noout -text
撤销证书
# 吊销证书
$ openssl ca -revoke newcerts/01.pem
# 发布吊销列表
$ openssl ca -gencrl -out crl/ca.crl
# 查看吊销列表
$ openssl crl -in crl/ca.crl -noout -text