生成服务器CA证书
在配置HTTPS监听时,您可以使用自签名的CA证书,并且使用该CA证书为客户端证书签名。
- 执行以下命令,在
/home
目录下新建一个ca文件夹,并在ca文件夹下创建四个子文件夹。
sudo mkdir ca
cd ca
sudo mkdir newcerts private conf server
- newcerts目录用于存放CA签署过的数字证书。
- private目录用于存放CA的私钥。
- conf目录用于存放一些简化参数用的配置文件。
- server目录存放服务器证书文件。
- 在
conf
目录下新建一个包含以下信息的openssl.conf文件。
[ ca ]
default_ca = foo
[ foo ]
dir = /home/ca
database = /home/ca/index.txt
new_certs_dir = /home/ca/newcerts
certificate = /home/ca/private/ca.crt
serial = /home/ca/serial
private_key = /home/ca/private/ca.key
RANDFILE = /home/ca/private/.rand
default_days = 365
default_crl_days= 30
default_md = md5
unique_subject = no
policy = policy_any
[ policy_any ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = match
localityName = optional
commonName = supplied
emailAddress = optional
-
执行以下命令,生成私钥Key文件。
cd /home/ca sudo openssl genrsa -out private/ca.key
执行结果如下图所示。
-
执行以下命令,按照提示输入所需信息,然后按下回车键生成证书请求csr文件。
sudo openssl req -new -key private/ca.key -out private/ca.csr
> 说明 Common Name需要输入负载均衡的域名。
-
执行以下命令,生成凭证crt文件。
sudo openssl x509 -req -days 365 -in private/ca.csr -signkey private/ca.key -out private/ca.crt
- 执行以下命令,为CA的Key设置起始序列号,起始序列号可以是四个字符。本示例中设置为FACE。
sudo echo FACE > serial
- 执行以下命令,创建CA键库。
sudo touch index.txt
- 执行以下命令,为移除客户端证书创建一个证书撤销列表。
sudo openssl ca -gencrl -out /home/ca/private/ca.crl -crldays 7 -config "/home/ca/conf/openssl.conf"
输出为:
Using configuration from /home/ca/conf/openssl.conf
这里可能会出现如下报错:
Using configuration from /home/ca/conf/openssl.conf
Can't open /home/ca/index.txt.attr for reading, No such file or directory
140303115944384:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:72:fopen('/home/ca/index.txt.attr','r')
140303115944384:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:79:
是openssl一个bug可以在ca目录下,再touch一个index.txt.attr
若文章对你有帮助,可以点赞或打赏支持我们。发布者:Aurora,转载请注明出处:http://61.174.243.28:13541/AY-knowledg-hub/%e7%94%9f%e6%88%90ca%e8%af%81%e4%b9%a6/