基于openssl.conf生成根证书
时间: 2023-08-02 07:17:39 浏览: 165
您可以使用openssl.cnf文件来自定义Ca证书的生成。下面是一个简单的例子:
1. 创建新的openssl.cnf文件
```
cp /etc/ssl/openssl.cnf openssl.cnf
```
2. 编辑openssl.cnf文件并添加以下部分:
```
[ca]
default_ca = CA_default
[CA_default]
dir = /path/to/ca
private_key = $dir/private/ca.key
certificate = $dir/ca.crt
new_certs_dir = $dir/newcerts
database = $dir/index
serial = $dir/serial
crlnumber = $dir/crlnumber
default_md = sha256
default_crl_days = 30
default_days = 365
policy = policy_anything
[policy_anything]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
```
在此示例中,您需要将`/path/to/ca`替换为您的自定义路径。此外,您需要创建所需的目录并添加一个空文件index和一个空文件serial。
3. 生成根私钥
```
openssl genrsa -out /path/to/ca/private/ca.key 4096
```
这将生成一个4096位的RSA密钥,并将其保存在名为“ca.key”的文件中。
4. 生成自签名根证书
```
openssl req -x509 -new -nodes -key /path/to/ca/private/ca.key -config openssl.cnf -sha256 -days 1024 -out /path/to/ca/ca.crt
```
在此命令中,-config参数指定使用的openssl.cnf文件,-key参数指定使用的私钥文件,-sha256参数指定使用SHA-256哈希算法,-out参数指定生成的证书文件的名称。
现在,您已经生成了自定义的自签名根证书,其中包含公钥和私钥。请注意,这是一个自签名的根证书,在部署到生产环境之前,您需要获取由受信任的第三方机构颁发的证书。
阅读全文