CA服务器的建立
只有先有CA服务器才能对后续自建的网站证书进行颁发和签署
- 生成CA私钥文件caPrivate.key
openssl genrsa -des3 -out caPrivate.key 2048
#为了防止私钥文件被篡改,所以一般都会对其进行权限的限制,要么事先umask要么事后chmod
umask 077
chmod 400 caPrivate.key
指令说明openssl genrsa -help
genrsa:用于生成RSA密钥对的OpenSSL命令
-des3:用des3加密算法对生成的私钥加密
-out:输出文件保存位置
2048:表示秘钥强度也可以使1024
- 生成CA自签证书caCert.crt
openssl req -new -x509 -key caPrivate.key -out caCert.crt -days 3650 -config ca.conf
-key:私钥文件(指明从某个私钥文件中提取公钥创建证书签署请求)
-out:指定证书文件存放在位置
-new:生成新的证书签署请求
-days:证书有效天数
-x509:生成自签证书,不带则表示生成证书签署请求
-config:证书应答文件,也可以手动输入dn信息
cat>ca.conf<<EOF
[req]
default_bits = 4096
prompt = no
default_md = sha256
distinguished_name = dn
[dn]
C = CN
ST = yourstate
L = yourcity
O = yourcommpany
OU = yourcommpany
CN = yourdomain.com
EOF
- 其他
# 证书索引文件(默认没有需要创建)
touch /etc/pki/CA/index.txt
# 记录已签发的所有证书的序列号(每签发一个证书序号自动+1,需要创建)
echo 01 > /etc/pki/CA/serial
如果不创建以上两个文件,在CA签署证书时会有如下报错
Using configuration from /etc/pki/tls/openssl.cnf
/etc/pki/CA/index.txt: No such file or directory
unable to open '/etc/pki/CA/index.txt'
139991383811984:error:02001002:system library:fopen:No such file or directory:bss_file.c:402:fopen('/etc/pki/CA/index.txt','r')
139991383811984:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:404:
网站证书的建立
- 生成服务器端私钥
openssl genrsa -out server.key 2048
#为了防止私钥文件被篡改,所以一般都会对其进行权限的限制,要么事先umask要么事后chmod
umask 077
chmod 400 server.key
- 生成服务器端签名请求
openssl req -new -key server.key -out server.csr -config ca.conf
-
申请时此文件中的国家、州、地区以及公司名字必须与CA一致,否则后续无法签署成功
-
证书签署请求文件后缀为csr
- 服务器端证书签署
openssl ca -policy policy_anything -cert caCert.crt -keyfile caPrivate.key -in server.csr -out server.crt -days 3650
-in:证书请求签署文件
-out:签发后的证书文件
网站证书相关操作
- 查看证书
openssl x509 -in server.crt -noout -serial -subject
-noout:不获取证书本身数据信息(加密字符串)
-serial:获取证书序列号,对应CA服务器中/etc/pki/CA/index.txt
的记录
-subject:获取DN信息,对应CA服务器中/etc/pki/CA/index.txt
的记录
- 吊销证书
openssl ca -revoke server.crt
附录
CA配置文件:/etc/pki/tls/openssl.cnf
诸如证书有效时间、存储路径、证书匹配选项等默认信息都可以从中查询并修改