创建没有密码的SSL证书
如何为测试服务器创建没有密码的自签名 SSL 证书-贾斯汀·凯利
使用工具
OpenSSL
基本步骤指南
- 生成私钥
通常是RSA私钥
openssl genrsa -out server.key 1024
- penssl genrsa:这是 OpenSSL 的命令,用于生成 RSA 私钥。
- -out server.key:这个选项告诉 OpenSSL 将生成的私钥保存到名为 server.key 的文件中。
- 1024:这个数字指定了 RSA 私钥的密钥长度,即 1024 位。
- 生成一个证书签名请求(Certificate Signing Request,简称 CSR)
openssl req -new -key server.key -out server.csr
- openssl req:openssl 是 OpenSSL 工具的命令,而 req 是用来处理证书请求的子命令。
- -new:这个选项告诉 OpenSSL 你想要创建一个新的证书请求。
- -key server.key:这个选项指定了包含私钥的文件名,即 server.key。OpenSSL 会从这个文件中提取公钥信息,并包含在 CSR 中。
- -out server.csr:这个选项指定了输出文件的名称,即 server.csr。这是将要生成的证书签名请求文件的名称。
- linux返回的输出一直输入回车即可,会以默认值覆盖(尤其是密码)
- 生成自签名的 X.509 证书(CRT)
openssl x509 -req -days 366 -in server.csr -signkey server.key -out server.crt
-
openssl x509:openssl 是 OpenSSL 工具的命令,而 x509 是用来处理 X.509 证书的子命令。
-
-req:这个选项告诉 OpenSSL 你希望从一个证书签名请求(CSR)来生成一个证书。
-
-days 366:这个选项指定了证书的有效期,以天为单位。在这里,你选择了 366 天,这意味着证书将在一年之后过期(考虑到闰年,所以不是标准的 365 天)。
-
-in server.csr:这个选项指定了输入文件的名称,即你的证书签名请求文件 server.csr。
-
-signkey server.key:这个选项告诉 OpenSSL 使用指定的私钥(server.key)来对证书进行签名。在这种情况下,由于你使用的是自己的私钥来签名证书,所以这个证书是自签名的。
-
-out server.crt:这个选项指定了输出文件的名称,即将要生成的证书文件 server.crt。
专有名词注释(人话)
RSA私钥:
RSA私钥就像是一把只有你自己知道的钥匙。这把钥匙非常特别,因为它可以解开由RSA公钥加密的信息锁。公钥就像是一把公开的锁头,大家都可以用它来锁住信息,但只有拥有私钥的你才能解开。
自签名:
自签名通常指的是在没有第三方权威机构参与的情况下,自己生成并签署数字证书的过程。具体来说,自签名证书是由证书的所有者自己创建并签名的证书,而不是由公认的证书颁发机构(CA)签发的。由于没有经过CA的验证和担保,自签名证书在大多数应用场景中可能不会被信任。
这种自签名的证书主要用于测试和开发环境,因为它可以方便地为应用程序或服务提供加密和身份验证功能,而无需支付CA的费用或等待CA的验证过程。但在生产环境中,为了确保安全性和可信度,通常建议使用由CA签发的证书。
需要注意的是,自签名证书在浏览器或其他客户端中可能会触发警告或错误,因为这些客户端无法验证证书的真实性和有效性。因此,在正式部署应用程序或服务时,最好使用由受信任的CA签发的证书。
X.509 证书(CRT):
X.509证书就像是一个网络上的“身份证”。就是一个电子文档,它包含了公钥信息和一些验证信息,用于在网络通信中证明某个实体(比如一个网站或个人)的身份。