Nginx服务器安装SSL证书
最近为网站加个证书加了很久,一开始是想用let’s encrypt免费证书的,但弄着弄着发现有个问题解决起来很麻烦,要用外国的dns服务才可能能够解决,所以就干脆用阿里云的免费证书了。
在证书控制台下载Nginx版本证书。下载到本地的压缩文件包解压后包含:
- .crt文件:是证书文件,crt是pem文件的扩展名。
- .key文件:证书的私钥文件(申请证书时如果没有选择自动创建CSR,则没有该文件)。
我们最好将上面两个文件都放在cert文件夹中,方便操作,并且我将两个文件改名为a.crt与a.key
将nginx中的配置修改如下
定义了两个server,第一个server监听80端口,如果是http请求过来的,就会重定向到https
server{
listen 80;
server_name fatalblow.top www.fatalblow.top;
return 301 https://www.fatalblow.top$request_uri;
}
server {
listen 443 ssl http2;
server_name www.fatalblow.top fatalblow.top;
charset utf-8;
access_log /home/project/blog/conf/nginx_access.log;
error_log /home/project/blog/conf/nginx_error.log;
client_max_body_size 75M;
ssl on;
ssl_certificate /etc/nginx/conf.d/cert/a.pem;
ssl_certificate_key /etc/nginx/conf.d/cert/a.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNUL
L:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location /media {
alias /home/project/blog/media; # 指向django的media目录
}
location /static {
alias /static ;
}
location / {
include /etc/nginx/uwsgi_params;
uwsgi_pass 0.0.0.0:8080; # 这个一定要和uwsgi.ini文件的端口一致
}
}
然后输入启动命令,指定配置文件
uwsgi -c /home/project/blog/conf/default.conf