1. 使用 OpenSSL 工具生成自签名证书
方式一:先生成私钥(key),再生成CSR,最后生成证书(crt)
生成私钥(key):
openssl genrsa -des3 -out server.key 2048
生成证书签名请求(CSR):
在这一步中,您将会被要求输入一些组织信息,如国家、州、城市、组织名称等。
SUBJECT="/C=CN/ST=ZheJiang/L=HangZhou/O=组织名称/OU=组织单位名称/CN=域名/emailAddress=邮箱"
openssl req -new -subj $SUBJECT -key server.key -out server.csr
生成服务器的私钥,去除密钥口令:
mv server.key server.origin.key
openssl rsa -in server.origin.key -out server.key
通过CSR生成证书(crt):
您需要将生成的CSR文件发送给证书颁发机构(CA),以获取证书。在这里,我们将使用自签名证书来代替:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
方式二:直接生成私钥和证书(key和crt)
openssl req -x509 -newkey rsa:2048 -keyout server.key -out server.crt -days 365
两者区别:
第一种方法分离了私钥和证书的生成过程,更符合安全最佳实践。私钥是极其敏感的信息,应该妥善保护。通过CSR生成证书可以确保证书的合法性和有效性。
2. 配置nginx
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /path/to/server.crt;
ssl_certificate_key /path/to/server.key;
# 其他 SSL 配置...
ssl_protocols TLSv1.2 TLSv1.3; # 指定支持的 TLS 版本
}