在Debian系统上配置Nginx以使用SSL证书,您可以选择自签名证书或从受信任的证书颁发机构(CA)获取证书。以下是两种方法的详细步骤:
自签名证书
- 安装OpenSSL:
sudo apt-get install openssl -y
- 生成私钥:
openssl genpkey -algorithm rsa -out private.key -aes256
系统会提示设置私钥的密码。
- 生成证书签名请求(CSR):
openssl req -new -key private.key -out csr.csr
系统会提示输入国家、省份、城市、组织等信息。
- 生成自签证书:
openssl x509 -req -days 365 -in csr.csr -signkey private.key -out certificate.crt
-days 365
表示证书有效期为365天。
- 验证证书:
openssl x509 -in certificate.crt -text -noout
从受信任的CA获取证书
- 导入Nginx密钥:
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg
- 设置稳定的Nginx存储库(可选):
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" | sudo tee /etc/apt/sources.list.d/nginx.list
- 安装Certbot:
sudo apt update sudo apt install snapd sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot
- 使用Certbot申请证书:
- 新建Nginx配置文件,例如
/etc/nginx/conf.d/abc.conf
。 - 编辑配置文件,填入以下模板,根据自己实际情况修改:
server { listen 80; server_name domain.com; location / { proxy_pass http://127.0.0.1:80; # 替换为你的应用程序地址 } }
- 使用Certbot申请证书:
sudo certbot --nginx -d domain.com
- 验证证书安装:
- 编辑Nginx配置文件,通常位于
/etc/nginx/sites-available/
目录下,确保包含以下内容:
ssl_certificate /path/to/your/fullchain.pem; ssl_certificate_key /path/to/your/privkey.pem;
- 重启Nginx服务以应用更改:
sudo systemctl restart nginx
通过以上步骤,您可以在Debian系统上为Nginx配置SSL证书,无论是选择自签名证书还是从受信任的CA获取证书。