HTTPS是一种加密的通信协议。因为您可以在浏览器和Web服务器间建立私有通道,故HTTPS本质上是一种更安全的Web浏览方式,比如像本博客https://songzixian.com/ 现在很多网站都支持免费申请单域名SSL证书,本文教大家如何使用Nginx配置SSL证书开启Https访问
第一步
前提:首先需要去申请SSL证书,阿里云 腾讯云 景安VPS,等等服务商都支持免费申请ssl证书,这里不做演示,申请好证书之后需要安装好ningx
,并且支持ssl
,Nginx安装教程可以看这篇文章https://songzixian.com/linuxcmot/1828.html
本文主要是教大家如何配置SSL证书
第二步
2.1配置nginx
在/usr/local/nginx/ (Nginx实际安装位置)目录下,新建my_nginx_conf
文件夹,自己写的配置都放到这个文件夹中。然后在配置文件nginx.conf中将整个文件夹引入进来即可。这样若有新的需求时,只需在文件夹中添加新需求的配置文件即可,不会再次修改配置文件nginx.conf
,提高效率。
新建my_nginx_conf
文件夹后,在/usr/local/nginx/my_nginx_conf/
新建配置文件:szxblog.conf
,注意一定要以conf
为后缀,然后文件填一下配置(域名替换成自己的)。
server{
listen 443 ssl;
#- 打包后静态文件的路径
root /home/www/szxblog;
#- 将resource.songzixian.com替换成自己的域名
server_name resource.songzixian.com;
#- 404后重定向到index.html
error_page 404 /index.html;
#- 需要将resource.songzixian.com.pem替换成已上传的证书文件的名称。
ssl_certificate /etc/nginx/cert/resource.songzixian.com.pem;
#- 需要将resource.songzixian.com.key替换已上传的证书密钥文件的名称。
ssl_certificate_key /etc/nginx/cert/resource.songzixian.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location /{
#Nginx 配置中添加一些设置,以将客户端的真实 IP 地址添加到请求的 "X-Forwarded-For" 头中
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
#- 设置HTTP请求自动跳转HTTPS
server {
listen 80;
#- resource.songzixian.com替换成自己的域名
server_name resource.songzixian.com;
rewrite ^(.*)$ https://$host$1;
location /{}
}
2.2引入自己写的配置文件
在服务器中,打开/usr/local/nginx/
目录下的nginx.conf
文件,添加下面一行代码,将刚才新建的配置文件引入进来。*.conf的意思是将my_nginx_conf
文件夹下的所有.conf
后缀的文件都引入。
重启Nginx
启动
/usr/local/nginx/sbin/nginx
直接重启
/usr/local/nginx/sbin/nginx -s reopen
重启完成之后,访问刚刚配置的域名resource.songzixian.com
就变成https协议了