在Ubuntu上为Nginx申请SSL证书主要有两种方式:购买商业SSL证书或获取免费的Let’s Encrypt证书。以下是详细的申请步骤:
sudo apt update
sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
将yourdomain.com替换为你的实际域名。根据提示完成配置,Certbot会自动为你配置Nginx。
Let’s Encrypt证书有效期为90天,为了保持网站的安全,可以使用Certbot的自动续订功能。
sudo certbot renew --dry-run
该命令会模拟续订过程,如果一切正常,你可以设置自动续订:
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com --renew-hook "systemctl reload nginx"
如果你选择手动获取SSL证书,可以按照以下步骤操作:
openssl genrsa -out yourdomain.key 2048
将yourdomain.key替换为你的实际域名。
openssl req -new -key yourdomain.key -out yourdomain.csr
根据提示输入信息。
openssl x509 -req -days 365 -in yourdomain.csr -signkey yourdomain.key -out yourdomain.crt
将yourdomain.crt替换为你的实际域名。
编辑Nginx配置文件,通常位于/etc/nginx/sites-available/default或/etc/nginx/nginx.conf。添加或修改以下内容:
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
ssl_certificate /path/to/yourdomain.crt;
ssl_certificate_key /path/to/yourdomain.key;
# ... 其他配置 ...
}
将/path/to/yourdomain.crt和/path/to/yourdomain.key替换为你的证书和私钥文件的路径。
sudo nginx -t
sudo systemctl restart nginx
通过以上步骤,你应该能够在Ubuntu上成功为Nginx申请并配置SSL证书,确保网站的数据传输安全。