4

如何成为 CA,并签发自己的证书

 3 years ago
source link: https://blog.vvzero.com/2021/01/24/Become-a-CA-and-generate-self-signed-certificate/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
如何成为 CA,并签发自己的证书

Post:2021-01-24 20:49:57 Tags:/ 网络安全 / 证书 / Visit:

要读懂此文章,你需要了解对称加密、非对称加密的基本概念,并了解证书签发的基本流程。

  1. 一台 Linux 主机
  2. openssl

创建 CA 的私钥

很容易理解,CA 也有自己的公钥和私钥。

openssl genrsa -des3 -out CAPrivate.key 2048

这个命令会生成一个私钥 CAPrivate.key,并且必须要填写私钥的密码。可以将 2048 改成 4096。不要奇怪这里只有一个私钥,其实公钥也保存在这个文件里了。

创建根证书

openssl req -x509 -new -nodes -key CAPrivate.key -sha256 -days 365 -out CAPrivate.pem

根证书,顾名思义,肯定是自签发的。这个证书待会需要安装到你的终端设备里面,不然靠这个根证书签发的其他证书不会被信任。

这个命令里面需要填写很多信息,按照实际填写就好。

至此,作为一个简单的 CA,所有的文件都已经齐全了。

创建待签发证书的私钥

这个私钥与 CA 无关,是待签发的下一级证书。这一步和下一步可以在另一台机器上完成,然后把文件传给保存 CA 信息的机器就好。

openssl genrsa -out MyPrivate.key 2048

同样,可以把 2048 改成 4096。

创建 CSR

可以理解为一个待发送给 CA、为你签发证书的一个请求。

openssl req -new -key MyPrivate.key -out MyRequest.csr

同样,这里需要填写很多信息,需要注意的是 Common Name 这个项目,如果你的证书是给 https 用的,这里就填你的域名。

使用 CA 的私钥签发证书

openssl x509 -req -in MyRequest.csr -CA CAPrivate.pem -CAkey CAPrivate.key -CAcreateserial -out X509Certificate.crt -days 365 -sha256

试一试刚刚签发的证书

  1. 在待测试终端设备上安装 CA 的根证书 CAPricate.pem,比如 Windows、Android,某些浏览器必须单独安装证书。
  2. MyPrivate.keyX509Certificate.crt 作为 HTTPS 服务(比如 Nginx)的私钥和证书,写好配置文件。
  3. 在浏览器里面试试看,应该可以显示小锁,且没有安全警告。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK