文档章节

从http切换到https

Sorin_Su
 Sorin_Su
发布于 2017/07/20 21:42
字数 1618
阅读 95
收藏 4
点赞 1
评论 1

前言:

1、https协议需要到ca申请证书,一般免费证书很少,需要交费。

2、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。

3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

目前大部分网站都在往https上转,Chrome也将https作为浏览器的默认连接,如果网站没采用https的话,就会出现!的标识。

一、关于https证书:

目前主流的SSL证书主要分为DV SSL 、 OV SSL 、EV SSL。

1、DV SSL:

DV SSL证书是只验证网站域名所有权的简易型(Class 1级)SSL证书,可10分钟快速颁发,能起到加密传输的作用,但无法向用户证明网站的真实身份。

目前市面上的免费证书都是这个类型的,只是提供了对数据的加密,但是对提供证书的个人和机构的身份不做验证。

2、OV SSL:

OV SSL,提供加密功能,对申请者做严格的身份审核验证,提供可信身份证明。和DV SSL的区别在于,OV SSL 提供了对个人或者机构的审核,能确认对方的身份,安全性更高。

所以这部分的证书申请是收费的~

3、EV SSL:

超安=EV=最安全、最严格 超安EV SSL证书遵循全球统一的严格身份验证标准,是目前业界安全级别最高的顶级 (Class 4级)SSL证书。

金融证券、银行、第三方支付、网上商城等,重点强调网站安全、企业可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输。

这部分的验证要求最高,申请费用也是最贵的。

DV和OV证书最大的差别是:

1)、DV型证书不包含企业名称信息;而OV型证书包含企业名称信息。

2)、OV型证书会在证书的Subject中显示域名+单位名称等信息;DV型证书只会在证书的Subject中显示域名。

OV型和EV型证书的区别是:

都包含了企业名称等信息,但EV证书因为其采用了更加严格的认证标准,浏览器对EV证书更加“信任”,当浏览器访问到EV证书时,可以在地址栏显示出公司名称,并将地址栏变成绿色。

二、https证书申请:

1)、登录阿里云官网,进入控制台,安全(云盾)栏目下打开证书服务,然后点击购买证书,此处我选择“免费型DV SSL”购买。

2)、成功后再证书服务首页补全当前证书信息即可

输入图片说明

3)、在证书审核通过后,点击“下载”,在此页面阿里云有详细的FAQ配置说明,照此步骤操作即可

成功之后,阿里云域名解析处添加了一条TXT类型 输入图片说明

三、Nginx配置SSL:

1)、首先确保机器上安装了openssl和openssl-devel

yum install openssl

yum install openssl-devel

2)、./configure --prefix=/dyyl/java/nginx --with-http_ssl_module

输入图片说明

注意一定要确认nginx已经加载了OpenSSL模块再make,若出现“OpenSSL library is not used”请添加http_ssl_module路径

3)、配置强制使用https请求:

到此,在浏览器上手动输入https://XXX已经可以正常访问

输入图片说明

但是如果不显示指定https访问,还是会默认走80端口,我们需要将nginx的80端口重定向到443

server {
        listen       80;
        server_name  localhost;
        if ($scheme = http ) { 
            return 301 https://$host$request_uri; 
        }   
        
        location / {
            root   html/finance-web;
            index  index.html index.htm;
       }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

四、项目中http更改:

浏览器默认是不允许在 https 里面引用 http 资源的,会报出mixed content错误,有一种解决方案是将html页面加上

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

意思是将该页面的http请求强制更改为https

最后贴一下我的nginx.conf配置:

http {
    include       mime.types;
    default_type  application/octet-stream;

    #文件上传大小限制,20M
    client_max_body_size 20m;
    #access_log  logs/access.log  main;
    sendfile        on;
    keepalive_timeout  65;

    # 80 端口,将所有请求转发至ssl
    server {
        listen       80;
        server_name  localhost;
        rewrite ^(.*)$ https://$host$1 permanent;    

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

    # 主站负载均衡,如需横向扩展,添加一个server即可
    upstream myServer {
        ip_hash;
        server 101.201.101.224:8080;
    }

    # HTTPS server start
    # 金融前台请求转发
    server {
        listen       443;
        server_name  jr.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/jr/214202510950206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/jr/214202510950206.key;
        ssl_session_timeout 30m;
        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   html/finance-web;
            index  index.html index.htm;
        }
    }

    # 商城前台请求转发
    server {
        listen       443;
        server_name  shop.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/shop/214202510940206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/shop/214202510940206.key;
        ssl_session_timeout 30m;
        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   html/client-shop;
            index  index.html index.htm;
        }
    }

    # 主站请求转发
    server {
        listen       443;
        server_name  www.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/www/214202510960206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/www/214202510960206.key;
        ssl_session_timeout 30m;
        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 / {
            proxy_set_header Host www.jucaibuy.com;
            proxy_set_header X-Real-IP  $remote_addr;  
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_set_header X-Forwarded-Proto  $scheme; 
            proxy_pass   http://myServer;
        }
    }

    # 用户系统请求转发
    server {
        listen       443;
        server_name  passport.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/passport/214202510930206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/passport/214202510930206.key;
        ssl_session_timeout 30m;
        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 / {
            proxy_set_header       Host passport.jucaibuy.com;  
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_set_header X-Forwarded-Proto  $scheme; 
            proxy_pass   http://101.201.101.224:8100/;
        }
    }

    # 商城后台项目请求转发
    server {
        listen       443;
        server_name  shopservice.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/shopservice/214202510890206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/shopservice/214202510890206.key;
        ssl_session_timeout 30m;
        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 / {
            proxy_set_header       Host shopservice.jucaibuy.com;  
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_set_header X-Forwarded-Proto  $scheme; 
            proxy_pass   http://101.201.101.224:8110/;
        }
    }

    # 金融后台项目请求转发
    server {
        listen       443;
        server_name  jrservice.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/jrservice/214202510870206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/jrservice/214202510870206.key;
        ssl_session_timeout 30m;
        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 / {
            proxy_set_header       Host jrservice.jucaibuy.com;  
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_set_header X-Forwarded-Proto  $scheme; 
            proxy_pass   http://101.201.101.224:8120/;
        }
    }

    # 后台项目请求转发
    server {
        listen       443;
        server_name  admin.xxx.com;

        ssl on;

        ssl_certificate   /dyyl/java/nginx/conf/cert/admin/214202510920206.pem;
        ssl_certificate_key  /dyyl/java/nginx/conf/cert/admin/214202510920206.key;
        ssl_session_timeout 30m;
        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 / {
            proxy_set_header       Host admin.jucaibuy.com;  
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;  
            proxy_set_header X-Forwarded-Proto  $scheme; 
            proxy_pass   http://101.201.101.224:8090/;
        }
    }


© 著作权归作者所有

共有 人打赏支持
Sorin_Su
粉丝 10
博文 34
码字总数 18026
作品 0
朝阳
程序员
加载中

评论(1)

obhen
obhen
厉害厉害,大神甜味
activity切换动画

Android 编程下设置 Activity 切换动画 探索安卓中有意义的动画! 安卓统一添加activity切换动画 Android 编程下设置 Activity 切换动画 实现Activity间的共享控件转场动画 Android的Activit...

addcn ⋅ 2015/12/31 ⋅ 0

美到的web设计

Nusa records 清爽舒适的页面,赏心悦目的音乐web app Sliding Triple View Layout 文章间的切换很有新意,两边的阴影区域可以算是预览的效果,点击可以切换,上面的tab也可以切换,排版应该...

phala ⋅ 2016/08/31 ⋅ 0

npm配置镜像、设置代理

配置镜像 by config command npm config set registry http://registry.cnpmjs.org npm info underscore (如果上面配置正确这个命令会有字符串response) 命令行指定 npm --registry http:......

爪哇小贩 ⋅ 2016/05/09 ⋅ 0

Node.js 环境配置记录

NRM https://github.com/Pana/nrm 在国内环境中使用 npm 可能会比较慢, 会需要切换到 cnpm 或者 taobao 的源 来提升效率 你可以通过以下方式切换数据源 config 命令 npm config set registr...

杯面柒 ⋅ 2015/12/03 ⋅ 0

HTTPS切换工具--HttpsSwitcher

HttpsSwitcher 是一个帮你进行 HTTPS 切换的 Chrome 插件,本工具可以帮你尝试使用https打开指定的域名,点击本插件的浏览器图标后会自动切换本标 签页的http/https状态,并且会记住你的选择...

leehorsley ⋅ 2013/01/26 ⋅ 0

关于tomcat+Nginx https配置

@葉哥 你好,想跟你请教个问题: 最近,由于项目要实现登录和注册页面使用https方式访问,其他页面用http方式访问,环境就是tomcat+nginx,于是了解关于nginx的相关配置,今天看到您的一篇关...

IceRainYWC ⋅ 2012/08/24 ⋅ 3

wifi(ap)信号无缝切换(AC技术)及RouterOs的ac(胖ap)和ap(瘦ap)具体设置购买

需求 1楼,2楼,3楼都部署了ap,比如我从1楼跑到3楼,需要将 WiFi 信号自动切换到信号最好的3楼信号,然后我又跑回了1楼,需要自动切换成信号最好的1楼 WiFi,切换过程不能中断。 探索过程 ...

爬墙 ⋅ 2016/09/20 ⋅ 0

Sublime 中运行 Shell 、Python、Lua、Groovy...等各种脚本

安装SublimeREPL包,直接在Sublime窗口中运行如cmd, powershell, python等各种脚本,不需要在shell窗口切换来切换去的,很是方便传送门[https://sublime.wbond.net/packages/SublimeREPL][1]...

EmmyLua ⋅ 2014/05/06 ⋅ 0

[react native] navigator过渡卡顿问题

navigator过渡卡顿问题 ReactNative导航设计与实现 https://segmentfault.com/a/1190000004923877 场景过渡动画 http://www.jianshu.com/p/ce0a43cd672f 缓慢的导航器(Navigator)切换 http:/......

addcn ⋅ 2016/04/28 ⋅ 0

https协议页面中的静态资源怎么采用http进行链接

本人菜鸟一个,想请教一个问题: 在做电子商务网站时,涉及到用户信息和支付操作页面时会采用https协议的请求链接。但是页面中存在很多js,css,图片之类的静态链接,像这种请求我想采用htt...

靳少伟 ⋅ 2013/01/27 ⋅ 1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

聊聊spring cloud的RequestRateLimiterGatewayFilter

序 本文主要研究一下spring cloud的RequestRateLimiterGatewayFilter GatewayAutoConfiguration @Configuration@ConditionalOnProperty(name = "spring.cloud.gateway.enabled", matchIfMi......

go4it ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部