如何使用OpenSSL工具生成根证书与应用证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用OpenSSL工具生成根证书与应用证书相关的知识,希望对你有一定的参考价值。

使用OpenSSL工具生成根证书与应用证书方法:
1、生成顶级CA的公钥证书和私钥文件,有效期10年(RSA 1024bits,默认) openssl req -new -x509 -days 3650 -keyout CARoot1024.key -out CARoot1024.crt
2、 为顶级CA的私钥文件去除保护口令 openssl rsa -in CARoot1024.key -out CARoot1024.key
3、 生成顶级CA的公钥证书和私钥文件,有效期15年(RSA 2048bits,指定) openssl req -newkey rsa:2048 -x509 -days 5480 -keyout CARoot2048.key -out CARoot2048.crt
4、 为顶级CA的私钥文件去除保护口令 openssl rsa -in CARoot2048.key -out CARoot2048.key
5、 为应用证书/中级证书生成私钥文件 openssl genrsa -out app.key 2048
6、 根据私钥文件,为应用证书/中级证书生成 csr 文件(证书请求文件) openssl req -new -key app.key -out app.csr
7、 使用CA的公私钥文件给 csr 文件签名,生成应用证书,有效期5年 openssl ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything
8、 使用CA的公私钥文件给 csr 文件签名,生成中级证书,有效期5年 openssl ca -extensions v3_ca -in app.csr -out app.crt -cert CARoot1024.crt -keyfile CARoot1024.key -days 1826 -policy policy_anything
以上是生成根证书与应用证书过程中要用到的所有命令,根据生成目标不同,分为三组。其中,前面两组都用于生成自签名的顶级CA(区别只在于密钥长度不同),实际应用中只需根据需求选择一组即可。 最后一组用于生成非自签名的证书,包括中级证书与应用证书。所谓中级证书,是具有继续颁发下级证书权限的子CA,而本文中所说的应用证书,特指不能用来继续颁发下级证书,只能用来证明个体身份的证书。顶级CA在签发二者的时候,只是多少一个 -extensions v3_ca 选项的区别,这个选项赋予被签发的证书继续签发下级证书的权力。
参考技术A openssl_x509_parse函数解析用户证书与根证书,然后比对颁发机构等信息,判断用户证书是否合法

以上是关于如何使用OpenSSL工具生成根证书与应用证书的主要内容,如果未能解决你的问题,请参考以下文章

如何配置tomcat证书

Openssl 生成根证书并签证域名

如何将 OpenSSL 指向 Android 设备上的根证书?

使用 OpenSSL 创建私有 CA:3 用户证书

openssl生成perm文件

如何创建一个自签名的SSL证书(X509)