Nginx环境下实现全站https加密

几经折腾,本站终于实现https加密了。下面将分享我是如何实现https全站加密的。

首先需要申请一个SSL证书,我的SSL证书是在阿里云免费申请的。

申请好证书后,接下来就是如何安装SSL证书和如何在Nginx服务器端进行配置。

一、将申请的证书文件上传到服务器

使用Xshell连接到远程服务器,在 /usr/local/nginx/ 目录下创建 cert 文件夹

下载申请的ssl证书(一般包含两个文件,一个.pem和一个.key),上传至刚创建的 cert文件夹内。

二、配置nginx.conf

首先在 /usr/local/nginx/conf/ 目录下找到 nginx.conf 文件,

listen 80; 改为 listen 443; 其它 server_name,index,root 等都不需要改动;

然后再在server段中添加以下代码:

ssl on;
ssl_certificate   /usr/local/nginx/cert/214036733780684.pem;
ssl_certificate_key  /usr/local/nginx/cert/214036733780684.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;

特别需要注意的是:

  • ssl_certificate:这一行的路径一定需要填写正确,是绝对路径(以 / 开始),就是指具体在服务器的哪个位置;214036733780684.pem,这个文件名的一段数字就是指申请的ssl证书名,不能填写错误

  • ssl_certificate_key :同上。

  • ssl_session_timeout 5m:不修改

  • ssl_ciphers:改为自己的;

  • ssl_protocols TLSv1 TLSv1.1 TLSv1.2:不需要改动

  • ssl_prefer_server_ciphers on:不需要改动。

配置完后如下:

ssl-2

三、单个站点 yourdomain.conf 文件的配置

/usr/local/nginx/conf/vhost/ 目录下找到需要配置的文件,比如 www.conimi.com.conf

在server段只需修改 listen 端口为443即可;`

修改完成后,就可以通过https://www.conimi.comhttps://conimi.com 访问了

进一步将https://conimi.com 设置301重定向跳转至https://www.conimi.com

新建一个server段配置,

server
{
listen 443;
server_name conimi.com;
rewrite ^(.*) https://www.conimi.com$1 permanent;
}

就完成了 https://conimi.com 301重定向至https://www.conimi.com

以下是配置好的 https://conimi.com 301重定向至 https://www.conimi.com,特别需要注意两个server段的 server_name。

ssl-3

至此,站点就完成了https全站加密,但是,我们很多时候会通过http://www.conimi.comhttp://conimi.com访问,于是,我们还需要做一个301重定向,将http://www.conimi.comhttp://conimi.com跳转至https://www.conimi.com

再新建一个server段,配置如下:

server
{
listen 80;
server_name www.conimi.com conimi.com;
rewrite ^(.*) https://www.conimi.com$1 permanent;
}

于是就完成了 http://www.conimi.comhttp://conimi.com 跳转到 https://www.conimi.com

请输入图片描述

四、重启服务器。

完成以上配置后,重新启动服务器,我们就可以通过http://www.conimi.com、http://conimi.com、https://conimi.comhttps://www.conimi.com访问了。

五、可能会出现的问题:

能通过https访问,但是浏览器还是显示为不安全,这就需要检查你的网站的资源链接如图片路径,歌曲链接,头像链接等是否为https路径,如果不是,则需要改为https,否则依旧会显示不安全。

因此在以后添加图像资源等时,特别需要注意链接是否为https。

2019-12-15 02:59:15