配置Nginx的SSL证书,可以使得我们的网站流量更加安全可靠。下面是详细的攻略:
确定证书来源
首先需要确定证书的来源。一般来说,有两种方式:
- 购买证书:可以到一些知名的证书机构购买SSL证书,如Symantec、DigiCert、GlobalSign等。
- 免费证书:免费SSL证书可以通过Let's Encrypt获取。
安装Nginx
在进行证书安装之前,需要先安装Nginx。可以在Ubuntu系统下使用以下命令安装:
sudo apt update
sudo apt install nginx
证书安装
1. 购买证书
如果选择购买证书,那么需要根据证书机构的指引来安装证书。
下面以Symantec证书为例,在购买证书后,需要对证书进行CSR请求,然后Symantec会向你的邮箱发送证书文件。将证书安装到服务器上,将以下文件放在一个新的目录下:
mydomain.crt #证书文件
mydomain.key #客户私钥文件
mydomain.ca-bundle #Symantec CA Bundle(可选)
2. 免费证书
如果选择免费证书,可以使用Let's Encrypt进行申请。
首先需要先安装certbot
,可以使用以下命令:
sudo apt-get install python-certbot-nginx
然后使用以下命令申请证书:
sudo certbot --nginx -d your_domain.com
申请完成后,在/etc/letsencrypt/live/your_domain.com/
目录下就可以找到证书文件。
配置Nginx
配置Nginx的SSL证书,需要修改Nginx配置文件/etc/nginx/sites-enabled/default
。
首先打开文件:
sudo vi /etc/nginx/sites-enabled/default
然后找到以下行并将其注释掉:
# listen 80 default_server;
接着添加以下内容,将其替换为上面提到的证书路径:
server {
listen 80;
server_name your_domain.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name your_domain.com;
ssl_certificate /path/to/mydomain.crt;
ssl_certificate_key /path/to/mydomain.key;
ssl_trusted_certificate /path/to/mydomain.ca-bundle;
location / {
root /var/www/html;
index index.html;
}
}
如果使用Let's Encrypt证书,则需要将以下内容替换到Nginx配置文件中:
ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
接着重启Nginx:
sudo service nginx restart
然后访问https://your_domain.com
就可以看到已经安装好的证书信息。
示例说明
示例1:购买Symantec证书
假设你购买了Symantec证书,证书文件名分别为mydomain.crt
、mydomain.key
和mydomain.ca-bundle
。
首先将证书文件上传到服务器的/var/sslcert/
目录下:
sudo mkdir /var/sslcert/
sudo chmod 700 /var/sslcert/
sudo cp mydomain.crt /var/sslcert/
sudo cp mydomain.key /var/sslcert/
sudo cp mydomain.ca-bundle /var/sslcert/
然后打开Nginx配置文件并修改以下内容:
...
ssl_certificate /var/sslcert/mydomain.crt;
ssl_certificate_key /var/sslcert/mydomain.key;
ssl_trusted_certificate /var/sslcert/mydomain.ca-bundle;
...
最后重启Nginx:
sudo service nginx restart
示例2:使用Let's Encrypt免费证书
假设你已经安装了certbot
并在your_domain.com
上申请了证书。
首先打开Nginx配置文件,然后修改以下内容:
...
ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;
...
最后重启Nginx:
sudo service nginx restart
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何配置Nginx的SSL证书? - Python技术站