只需要给服务器配置SSL证书信息就可以了
1.申请域名SSL证书,方式有很多,本例是再腾讯云申请了一个免费证书。
需要一点时间审核,审核通过之后,下载证书待用
2.去nginx配置文件中加入如下配置,
server {
listen 443;
server_name XXXXX.com; #填写绑定证书的域名
ssl on;
ssl_certificate /etc/nginx/1_xxxxx.xyz_bundle.crt;
ssl_certificate_key /etc/nginx/2_xxx.xyz.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
ssl_prefer_server_ciphers on;
#charset koi8-r;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
上面的配置弄好之后,重启nginx
service nginx restart
这个时候就可以用https://域名 访问网站了
同时 http://域名 也是可以访问的,因为80端口默认访问http,这个时候如果想要用户访问http时自动跳转到https需要加入如下配置就可以了
再80端口的配置的location /中,加入
rewrite ^(.*)$ https://$host$1 permanent;
这个时候当用户访问http会301重定向到https。
但还有一个问题,就是当用户直接访问ip时,网页会显示证书无效(网站不安全),因为我们的证书不是ip证书
这个时候只需要把80端口的server_name 改成相应的域名
server_name xxx.xyz www.xxx.xyz;
另外再添加如下代码
server
{
listen 80 default;
server_name _;
return 500;
}
这样这用ip访问网站时,访问500;
也可以让用户ip访问时跳转到相应页面
server
{listen 80 default;
server_name _;
rewrite ^(.*) http://www.xxx.xyz permanent;
}