openssl生成自签证书
建立私有CA实现证书申请颁发:
私有CA:
OpenCA:
OpenCA开源组织使用Perl对OpenSSL进行二次开发而成的一套完善的PKI免费软件
openssl:
相关包 openssl 和 openssl-libs
证书申请及签署步骤:
- 生成证书申请请求
- RA核验
- CA签署
- 获取证书
注:私有CA只需要接受请求签署即可
openssl的配置文件:
/etc/pki/tls/openssl.cnf
配置文件解读:
全局配置段:
| 全局配置参数 | 含义 |
|---|---|
| HOME | 家目录 |
| RANDFILE | 随机数生成器临时保存文件 |
| default_ca | 使用默认ca参数配置 |
CA_default配置段:
| CA默认配置参数 | 含义 |
|---|---|
| dir | ca存放目录 |
| certs | 颁发证书后的位置 |
| crl_dir | 吊销证书存放位置 |
| database | 证书索引数据 |
| unique_subject | 主体是否唯一 |
| new_cert_dir | 刚签署的证书存放 |
| certificate | ca证书存放,也就是ca公钥 |
| serial | 颁发证书序列号记录 |
| crlnumber | 吊销证书的序列号 |
| crl | 吊销的证书列表 |
| private_key | ca私钥路径 |
| x509_extensions | 支持509额外扩展 |
| default_days | 证书有效期 |
| default_crl_days | 吊销证书期限 |
| policy | CA默认使用的策略,可修改为policy_anything |
policy_match配置段
CA策略配置,默认被签发的证书,相关参数必须一直才行
三种策略:
- match:要求申请填写的信息跟CA设置信息必须一致
- optional:可有可无,跟CA设置信息可不一致
- supplied:必须填写这项申请信息
| CA策略配置 | 含义 |
|---|---|
| countryName | 国家,简写:C |
| stateOrProvinceName | 省份、城市,简写: ST |
| organizationName | 组织,公司名,简写: L |
| organizationalUnitName | 部门,简写: O |
| commonName | 域名、主机 ,简写: CN |
| emailAddress | 邮箱 |
policy_anything配置段:
参数与CA策略配置一样,但允许被签发的证书有差异
用于第三方ca策略
签发证书
方法1:有ca签发
1. 修改ca默认签发策略
vim /etc/pki/tls/openssl.cfg
policy = policy_anything #使用第三方ca策略,方便后期使用
2. 准备目录,rhel8没有自带此目录
mkdir -p /etc/pki/CA/{certs,crl,newcerts,private}
touch /etc/pki/CA/index.txt
echo 01 > /etc/pki/CA/serial
echo 01 > /etc/pki/CA/crlnumber
cd /etc/pki/CA
3. 创建CA私钥
openssl genrsa -out private/ca.pem 2048
4. 私钥自签名CA证书(生成CA公钥)
openssl req -new -x509 -key private/ca.pem -days 3650 -out ca.crt
选项说明:
国家代码查看:https://country-code.cl/
- -new 生成新证书签署请求
- -x509 专用于CA生成自签证书
- -key 生成请求时用到的私钥文件
- -days n 证书的有效期限
- -out 路径 证书的保存路径
5. 创建用户的私钥
(umask 066; openssl genrsa -out hj.key 2048)
6. 用户的私钥生成证书申请文件
openssl req -new -key hj.key -out hj.csr
openssl ca -in hj.csr -out /etc/pki/CA/certs/hj.crt -days 100
openssl x509 -in hj.crt -noout -text -serial #查看证书有效期
7. windows使用证书
把CA证书(公钥)导出,安装到信任的根证书颁发机构即可
方法2:无需ca签发
自签
openssl req -x509 -newkey rsa:2048 -keyout hj.key -out hj.crt -days 3650 -nodes -subj '/CN=www.hj.com'
方法3:为签发证书加入额外扩展信息
参考博主的文章:自动签发证书脚本
吊销用于证书
1. 查看证书
openssl ca -status 01 #查看01编号的证书是否吊销
openssl x509 -in hj.crt -noout -serial -subject 查看hj.crt证书
2. 证书吊销
openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem
3. 更新吊销列表文件
openssl ca -gencrl -out /etc/pki/CA/crl.pem
4. 查看吊销列表文件内容
openssl crl -in /etc/pki/CA/crl.pem -noout -text

浙公网安备 33010602011771号