博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从http切换到https
阅读量:7063 次
发布时间:2019-06-28

本文共 7848 字,大约阅读时间需要 26 分钟。

hot3.png

前言:

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页面加上

意思是将该页面的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/;        }    }

转载于:https://my.oschina.net/u/2489726/blog/1476669

你可能感兴趣的文章
Ajax 请求头中常见content-type
查看>>
芥末烧饼day3
查看>>
VBScript函数
查看>>
网页设计的九大常见错误
查看>>
Evolutionary Computing: 3. Genetic Algorithm(2)
查看>>
Bubble三维图形引擎简介
查看>>
sqlite3导出数据库:迁移导出sqlite3数据到mysql流程
查看>>
6.4-数据结构&算法-模板/函数模板/类模板/特化
查看>>
TensorFlow安装(Ubuntu18.04+Anaconda3+CUDA9.0+cuDNN7.1+TensorFlow1.8.0+Pycharm)
查看>>
会员管理系统全部源代码(C#+EF+SQLite+Winforms实现)
查看>>
查看IIS哪个应用程序池占用CPU过高
查看>>
引起Silverlight白屏的原因
查看>>
算法1--
查看>>
关于“华为”的大数据分析
查看>>
Proguard随笔
查看>>
BUG:ie8不支持indexOf()
查看>>
vue.js入门
查看>>
ORB-SLAM2学习3 MapPoint.h Map.h
查看>>
推荐的 MongoDB 安装文档
查看>>
ubuntu cron设置和开启日志
查看>>