openssl 生成自签名服务器证书
使用 openssl 生成自签名服务器证书 (server-cert.pem) 和私钥 (server-key.pem) 可以通过以下步骤完成:
生成私钥:
首先,你需要生成一个私钥文件。使用 rsa 算法和2048位长度作为示例:
openssl genrsa -out server-key.pem 2048
这个命令会创建一个名为 server-key.pem 的文件,它包含了生成的私钥。
生成证书签名请求(CSR):
接下来,使用上一步生成的私钥来创建一个证书签名请求(CSR)。在创建 CSR 的过程中,你会被提示输入一些证书信息,如国家代码、组织名称等:
openssl req -new -key server-key.pem -out server.csr
这个命令会要求你输入之前创建的私钥文件的路径,并生成一个名为 server.csr 的 CSR 文件。
生成自签名证书:
最后,使用私钥和 CSR 来生成自签名证书:
openssl x509 -req -days 365 -in server.csr -signkey server-key.pem -out server-cert.pem
这个命令将使用私钥 (server-key.pem) 来对 CSR (server.csr) 进行签名,生成自签名的证书 (server-cert.pem)。-days 365 选项设置了证书的有效期为 365 天。
验证证书和私钥:
你可以使用以下命令来检查生成的证书和私钥:
openssl x509 -in server-cert.pem -text -noout
openssl rsa -in server-key.pem -check
第一个命令会显示证书的详细信息,包括有效期、颁发者、主题等。第二个命令会验证私钥是否有效,并显示其长度和模数。
请注意,自签名证书由服务器自身签发,不会由受信任的证书颁发机构(CA)签发。因此,在客户端,自签名证书可能会触发安全警告。自签名证书通常用于测试环境或内部服务,而不适用于生产环境,除非你配置了客户端以信任自签名证书。在生产环境中,建议使用由受信任的CA签发的证书