一、证书操作
近期遇到了需要用自签名证书的情况,所以记录一下过程,全程使用openssl环境即可
1. 生成一个新的RSA私钥:
openssl genpkey -algorithm RSA -out ca_key.pem -pkeyopt rsa_keygen_bits:3072
这将生成一个3072位的RSA私钥,并将其保存到`ca_key.pem`文件中。
2. 使用这个私钥来生成一个新的自签名证书:
openssl req -new -x509 -key ca_key.pem -out ca_cert.pem -days 365
这将生成一个有效期为365天的自签名证书,并将其保存到`ca_cert.pem`文件中。在生成证书的过程中,OpenSSL会提示你输入一些信息,如你的国家、省份、城市、组织名等。
这个自签名证书可以作为CA证书,用于签署其他证书或验证客户端证书。但是请注意,这只是一个基本的例子。在实际使用中,你可能需要根据你的具体需求来配置证书的参数。例如,你可能需要设置证书的扩展字段,以标记这个证书可以作为CA证书使用。
二、生成服务器密钥和使用自签名证书签署密钥
你可以使用OpenSSL命令行工具来生成客户端和服务器的证书和私钥,并使用你的CA证书和私钥来签署它们。以下是步骤:
1. 生成服务器的私钥:
openssl genpkey -algorithm RSA -out server_key.pem -pkeyopt rsa_keygen_bits:3072
2. 生成服务器的证书签名请求(CSR):
openssl req -new -key server_key.pem -out server_csr.pem
3. 使用CA证书和私钥来签署服务器的CSR,生成服务器的证书:
openssl x509 -req -in server_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out server_cert.pem -days 365
4. 生成客户端的私钥:
openssl genpkey -algorithm RSA -out client_key.pem -pkeyopt rsa_keygen_bits:3072
5. 生成客户端的证书签名请求(CSR):
openssl req -new -key client_key.pem -out client_csr.pem
6. 使用CA证书和私钥来签署客户端的CSR,生成客户端的证书:
openssl x509 -req -in client_csr.pem -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out client_cert.pem -days 365
这样,你就生成了服务器和客户端的证书和私钥,并且这些证书都是由你的CA证书签署的。你可以在服务器和客户端的TLS配置中使用这些证书和私钥。