Ubuntu服务器中Nginx配置HTTPS并且申请导入ssl免费证书
Song •
4605 次浏览 •
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中distinct()的使用方法与去重 2017-09-11
-
Laravel将view缓存为静态html,laravel页面静态缓存 2021-10-09
-
[ laravel爬虫实战--基础篇 ] guzzle描述与安装 2017-11-01
-
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 2017-07-18
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
热门文章
-
mysql如何给运营人员添加只有查询权限的账号 2024-12-02
-
Mac 安装mysql并且配置密码 2024-11-20
-
阿里云不同账号(跨账号)ECS服务器同地域如何实现免费内网互通? 2024-11-12
-
electron安装使用better-sqlite3并解决NODE_MODULE_VERSION xxx. This version of Node.js requires 2024-11-06
-
Zerotier+Moon+Nginx实现内网穿透搭建网站 2024-08-23
更多相关好文