Ubuntu服务器中Nginx配置HTTPS并且申请导入ssl免费证书

earnpls • 855 次浏览 • 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.comwww.phpartisan.com需要2个证书,我提供2个免费证书地址,大家也可以自行百度

申请后解压你会看到3个文件夹IIS,Nginx,Apache,你可以根据自己的服务器选择相应证书,我申请的是腾讯云的SSL证书,因为他们的申请速度很快!

腾讯云免费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,我们的教程差不多就结束了

配置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.comhttps://www.baidu.com/的跳转,发现百度很巧妙的利用meta的刷新作用,实现http向https跳转

<html>  
<meta http-equiv="refresh" content="0;url=https://test.com/">
</html> 

原创文章,转载请注明 :Ubuntu服务器中Nginx配置HTTPS并且申请导入ssl免费证书 - Laravel学习网
原文出处: https://phpartisan.cn/news/16.html
问题交流群 :168117787
提交评论
要回复文章请先登录注册
用户评论
  • 没有评论
[ 配置教程 ] 在ubuntu16.04中部署LNMP环境(php7+maridb且开启maridb远程以及nginx多域名访问 )并配置laravel环境 laravel时区设置并解决laravel时间与服务器时间不统一问题