Ubuntu服务器中Nginx配置HTTPS并且申请导入ssl免费证书
Song •
5000 次浏览 •
0个评论 •
2017年09月10日
今天我们将要学习在Ubuntu服务器中Nginx配置HTTPS并且申请导入ssl免费证书,让我们Laravel站点支持Https,同时配置强制跳转Https,作为IT界的同学来说,2017年,https必须是一个关键词,苹果宣布所有iOS app将在2017年使用HTTPS,难道https真的比http安全么?
答案是肯定的,我自己从抓包和网络劫持测试,https会以TLSv1.2 等 SSL 协议传输,相对http来说,安全性极大提高,但是也是可以通过导入证书等解析出传输的数据,好的,接下来我们来学习怎么让自己的网站变成https
一、申请ssl证书以及免费证书申请
ssl证书很方便申请,速度也很快,但是就是免费的只能单站点以及只能免费使用1年,比如bbs.phpartisan.com和www.phpartisan.com需要2个证书,我提供2个免费证书地址,大家也可以自行百度
申请后解压你会看到3个文件夹IIS,Nginx,Apache,你可以根据自己的服务器选择相应证书,我申请的是腾讯云的SSL证书,因为他们的申请速度很快!

二、导入且配置ssl证书:
我们把证书和一个密钥导入服务器,比如导入/var/www下,怎么导入?方法很多,我们这里使用SFTP进行倒入
sftp root@你的IP地址
# 输入密码登录
cd /var/www
put 证书或者密钥文件地址+文件名 文件名
# 中间加个空格,确保地址正确
上传成功以后,那么我们来配置一下nginx,
sudo vim /etc/nginx/sites-available/default
接下来找到我们的项目配置处
server {
# 我们这里允许http和https访问,你可以删除80那一行让我们只能https访问
listen 80;
listen 443;
# 其他配置信息,不用修改
# 在下面加入如下代码
ssl on;
ssl_certificate /var/www/ssl/证书名称;
ssl_certificate_key /var/www/ssl/密钥名称;
# 证书地址可以自定义,证书名称注意不要有"."这种特殊符号
}
接下来我们重启服务器让配置生效,如果无法重启,请检查证书是否路径或者名称不对
service nginx restart
这样我们再来访问我们的站点,你会发现你的站点支持了Https,我们的教程差不多就结束了

三、nginx强制使用https访问网站(http跳转到https)
1、nginx配置重写
server {
listen 80;
# 修改成自己的域名即可
server_name test.com www.test.com;
rewrite ^(.*)$ https://$host$1 permanent;
}
2、index.html刷新网页
上述那种方法会耗费服务器的资源,我们用curl访问baidu.com试一下,看百度的公司是如何实现baidu.com向https://www.baidu.com/的跳转,发现百度很巧妙的利用meta的刷新作用,实现http向https跳转
<html>
<meta http-equiv="refresh" content="0;url=https://test.com/">
</html>
-
laravel高级的Join语法以及使用Join多个条件 2017-09-08 -
Laravel 联合查询数据库字段重复只显示一个字段怎么办? 2017-08-14 -
Laravel5.* 使用"earnp/zmxy"拓展包集成芝麻信用,php芝麻信用拓展 2017-08-01 -
[ 拓展包: Laravel-Emoji ] 在Laravel中集成使用 Emoji 表情 2017-07-28 -
Laravel 调试利器(Laravel Debugbar)扩展包安装及使用教程 2017-07-28

更多相关好文