在Ubuntu上安装和配置Nginx以使用SSL证书涉及几个步骤。以下是详细的指南:
1. 安装Nginx
如果还没有安装Nginx,可以使用以下命令进行安装:
sudo apt update
sudo apt install nginx
2. 获取SSL证书
你可以从受信任的证书颁发机构(CA)购买SSL证书,或者使用Let’s Encrypt免费获取一个。这里假设你已经获得了SSL证书文件(your_domain.crt
)和私钥文件(your_domain.key
)。
3. 将证书文件上传到服务器
将你的证书文件和私钥文件上传到服务器上的某个目录,例如 /etc/ssl/certs/
和 /etc/ssl/private/
。
sudo mkdir -p /etc/ssl/certs
sudo mkdir -p /etc/ssl/private
sudo cp your_domain.crt /etc/ssl/certs/
sudo cp your_domain.key /etc/ssl/private/
4. 配置Nginx使用SSL证书
编辑Nginx配置文件,通常位于 /etc/nginx/sites-available/default
或 /etc/nginx/sites-available/your_domain
。
打开配置文件进行编辑:
sudo nano /etc/nginx/sites-available/default
添加或修改以下内容:
server {
listen 80;
server_name your_domain.com www.your_domain.com;
return 301 https://$host$request_uri; # 强制HTTP重定向到HTTPS
}
server {
listen 443 ssl;
server_name your_domain.com www.your_domain.com;
ssl_certificate /etc/ssl/certs/your_domain.crt;
ssl_certificate_key /etc/ssl/private/your_domain.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html index.htm;
}
}
5. 测试Nginx配置
在重新加载Nginx之前,先测试配置文件是否有语法错误:
sudo nginx -t
如果一切正常,你会看到类似以下的输出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
6. 重新加载Nginx
如果没有错误,可以重新加载Nginx使配置生效:
sudo systemctl reload nginx
7. 验证SSL证书是否生效
打开浏览器并访问 https://your_domain.com
,检查是否成功加载了SSL证书。如果一切正常,你应该会看到一个安全的锁图标。
额外步骤:自动续订Let’s Encrypt证书(可选)
如果你使用的是Let’s Encrypt免费证书,可以使用Certbot工具来自动续订证书。首先安装Certbot:
sudo apt install certbot python3-certbot-nginx
然后运行Certbot来自动配置和续订证书:
sudo certbot --nginx -d your_domain.com -d www.your_domain.com
Certbot会自动更新Nginx配置并设置自动续订任务。
通过以上步骤,你应该能够在Ubuntu上成功安装和配置Nginx以使用SSL证书。
可以用https访问了,爽歪歪了