openssl生成自签证书

建立私有CA实现证书申请颁发:

私有CA:

OpenCA:

OpenCA开源组织使用Perl对OpenSSL进行二次开发而成的一套完善的PKI免费软件

openssl:

相关包 openssl 和 openssl-libs

证书申请及签署步骤:

  1. 生成证书申请请求
  2. RA核验
  3. CA签署
  4. 获取证书

:私有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
posted @ 2022-01-27 14:36  suyanhj  阅读(294)  评论(0)    收藏  举报