使用OpenSSL生成证书和私钥文件
使用OpenSSL生成证书和私钥文件,请按以下步骤操作:
第1步:生成RSA私钥
openssl genrsa -out private_key.pem 2048
参数 -out 指定生成的私钥文件名,参数 2048 指定生成的RSA私钥以位为单位的长度,常见的取值:1024、2048、3072、4096,较长的密钥通常提供更高的安全性,但可能导致性能下降。
第2步:生成证书签名请求(CSR)
openssl req -new -key private_key.pem -out certificate_request.csr
这步过程中会提示输入一些信息,如国家、组织、公共名称、密码短语等。其中密码短语用于加密私钥文件以增加安全性,当使用该私钥进行操作(如签署数据或解密数据)时,系统会提示输入密码短语。如果不设置密码短语,私钥文件将不会被加密,任何人都可以访问和使用它。
第3步:生成自签名证书
openssl x509 -req -in certificate_request.csr -signkey private_key.pem -out certificate.pem -days 365
参数 -out 指定证书文件名,参数 -days 指定证书有效期,参数 -signkey 指定签名证书的私钥文件。X.509是一种基于ITU X.509标准的数字证书,它定义了PKI(Public Key Infrastructure)证书的格式,X.509证书包含用户公开的基本信息,如用户名、组织、邮箱等,这些信息由第三方可信机构(CA)对公钥实施数字签名,在PKI体系中,X.509证书是一个表明身份的载体。
第4步:生成PKCS#12文件
可将证书和私钥合并为一个PKCS#12文件,即p12文件。
openssl pkcs12 -export -in certificate.pem -inkey private_key.pem -out certificate.p12 -name "My Certificate"
这里会用到前面提到的密码短语,如果有。参数 -name 用于为生成的PKCS#12文件中的证书和私钥指定一个别名(alias),别名是一个可读的名称,用于标识证书和私钥在PKCS#12文件中的位置,这对于在单个PKCS#12文件中存储多个证书和私钥时,可以帮助您轻松地识别和管理它们。
注意
在生产环境中,建议使用权威证书颁发机构(CA)签发的证书,而不是自签名证书。自签名证书在测试和开发过程中可能足够,但在生产环境中可能会导致浏览器和其他客户端发出安全警告。要获取由CA签发的证书,您可以选择免费的Let's Encrypt证书或购买其他CA提供的证书。