准备过程
首先,你需要一个服务器,我自己用的是阿里云的ECS服务器,选择的是CentOS 7.6 64位,用学生认证的话能用优惠的价格买到。 然后,还需要准备一个免费的SSL证书,这个也可以在阿里云直接购买
步骤参考如下:
在证书购买完成之后,进进入管理控制台,选择购买好的证书,点击申请:
申请完成后可能会有审核,在审核结束之后点击下载:
这样你就得到了用于ssl的.key文件和.pem文件,接下来需要将它们上传到你的服务器中。
scp -r test.key yourusername@yourserverip:/etc/ssl/private/
tips:
1)scp是命令,-r是参数
2)test.key 是文件的路径和文件名
3)yourusername是服务器账号
4)yourserverip是要上传的服务器ip地址
5)/etc/ssl/private/是要拷入的文件夹路径
这样证书就准备好啦,然后开始安装和配置Nginx。 我们使用yum来安装Nginx。
Yum是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包。
具体安装过程可以参考技术胖的【前端必会的 Nginx入门视频教程】,因为他写的非常详细,我就不赘述啦
开始配置Https
1、确保你成功安装Nginx并能正常访问http://www. {{ yourdomain }} .com
2、确保你的ECS服务器的安全组中有配置443端口
3、在命令行中使用vim /etc/nginx/conf.d/*.conf打开Nginx的配置文件,并在底部添加以下代码【带{{ }} 的部分请自行替换】:
server {
listen 443 ssl;
server_name www.{{ yourdomain }}.com;
root html;
index index.html index.htm;
gzip on;
gzip_types text/plain application/javascript text/css;
ssl_certificate /etc/ssl/private/{{ yourFileName }}.pem;
ssl_certificate_key /etc/ssl/private/{{ yourFileName }}.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 / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
4、添加完成并保存退出之后,使用nginx -t测试一下,如果出现一下提示就表示配置没有问题
5、重启一下nginx -s reload或者systemctl restart nginx.service,使配置生效,然后我们查看一下端口的监听情况
可以看到80端口和443端口都在监听中了
6、此时如果直接去访问https://yourdomain的话可能会发现无法连接,于是我们就去防火墙中打开443端口:
firewall-cmd --zone=public --add-port=443/tcp --permanent
然后重启一下防火墙:
firewall-cmd --reload
在操作成功之后,命令行窗口中均会有sussess的提示。
7、此时再去访问,就会发现可以访问页面了。我们接下来的需求是每次在访问http开头的页面时自动重定向至https开头的页面,只需要在Nginx的配置文件中修改一下
在监听80端口的server配置中,添加以下代码rewrite ^(.*)$ https://$host$1 permanent;
修改完成后保存并退出vim,再重启一下Nginx即可生效,此时去访问http开头的页面就会自动重定向。
有疑问的请在下方留言哈~