一、HTTPS基本概述
1、https概念
HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 HTTPS 存在不同于 HTTP 的默认端口及一个加密/身份验证层(在 HTTP与 TCP 之间)。这个系统提供了身份验证与加密通讯方法。它被广泛用于万维网上安全敏感的通讯,例如交易支付等方面 。
2、HTTP缺点:
1)传输数据被中间人盗用, 信息泄露
2)数据内容劫持, 篡改
3、https的优点
1)保护数据隐私
当网站使用不安全的HTTP协议时,用户通过浏览器访问该网站所有的行为都是明文的,容易被第三方窥视或篡改。若用户访问的网站已部署安全的HTTPS协议,客户端和服务端之间的通信内容被加密。如第三方想要窥视或篡改其通讯内容,黑客可能要潜在地渗透传输安全层(TLS),或窃取SSL / TLS证书,然后都内容进行破解。据目前的加密技术,40位强度的SSL证书暴力破解耗费4小时,而对于128位证书破解需要一万亿年以上。可见实施HTTPS大大提高了隐私保护的壁垒。
2)信息安全
当网站使用HTTP时,其用户的会话cookie可以会被网络罪犯截获并复制到用户的活动会话中,使用户进入钓鱼网站,从而获取用户信息。但当网站使用HTTPS协议,SSL证书须认证服务器的真实身份,有效区分钓鱼网站和官方网站。用户可通过浏览器向用户展示网站的认证信息,让用户轻松识别网站的真实身份,防止钓鱼网站仿冒。
3)保证新闻的真实性
当您使用HTTP在网站上阅读新闻时,文章内容可能很容易被第三方使用MiTM向量修改。使用HTTPS在网站上阅读新闻,可确保读取的文章不会被不需要的实体拦截。
4)改善Google中的网站排名
为了大力推进HTTPS使用,提升全网的安全性。Google最近宣布,它会将HTTPS作为搜索结果中的排名因素。
5)集成第三方和新兴技术
新技术旨在与HTTPS网站协同工作。虽然它们尚未成为主流,但是拥抱HTTPS现在时下的网站安全趋势。许多第三方需要使用HTTPS提供安全服务。
二、https自签证书配置
1、HTTPS配置语法
Syntax: ssl on | off; Default: ssl off; Context: http, server Syntax: ssl_certificate file; Default: — Context: http, server Syntax: ssl_certificate_key file; Default: — Context: http, server
2、HTTPS配置场景
配置苹果要求的证书
1.服务器所有连接使用TLS1.2以上版本(openssl 1.0.2)
2.HTTPS证书必须使用SHA256以上哈希算法签名
3.HTTPS证书必须使用RSA 2048位或ECC256位以上公钥算法
4.使用前向加密技术
秘钥生成操作步骤
1.生成key密钥
2.生成证书签名请求文件(csr文件)
3.生成证书签名文件(CA文件)
3、检查当前环境
//openssl必须是1.0.2 [root@nginx ~]# openssl version OpenSSL 1.0.2k-fips 26 Jan 2017 //nginx必须有ssl模块 [root@nginx ~]# nginx -V --with-http_ssl_module [root@nginx ~]# mkdir /etc/nginx/ssl_key -p [root@nginx ~]# cd /etc/nginx/ssl_key
4、创建私钥
[root@nginx ssh_key]# openssl genrsa -idea -out server.key 2048 Generating RSA private key, 2048 bit long modulus .....+++ //记住配置密码, 我这里是1234 Enter pass phrase for server.key: Verifying - Enter pass phrase for server.key:
5、生成使用签名请求证书和私钥生成自签证书
[root@nginx ssl_key]# openssl req -days 36500 -x509 \ -sha256 -nodes -newkey rsa:2048 -keyout server.key -out server.crt Country Name (2 letter code) [XX]:CN State or Province Name (full name) []:WH Locality Name (eg, city) [Default City]:WH Organization Name (eg, company) [Default Company Ltd]:edu Organizational Unit Name (eg, section) []:SA Common Name (eg, your name or your server's hostname) []:bgx Email Address []:bgx@foxmail.com
4、配置nginx
[root@Nginx ~]# cat /etc/nginx/conf.d/ssl.conf server { listen 443; server_name localhost; ssl on; index index.html index.htm; #ssl_session_cache share:SSL:10m; ssl_session_timeout 10m; ssl_certificate ssl_key/server.crt; ssl_certificate_key ssl_key/server.key; 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 /soft/code; access_log /logs/ssl.log main; } }
备注:测试访问, 由于该证书非第三方权威机构颁发,而是我们自己签发的,所以浏览器会警告
5、以上配置如果用户忘记在浏览器地址栏输入https://那么将不会跳转至https, 需要将访问http强制跳转https
[root@Nginx ~]# cat /etc/nginx/conf.d/ssl.conf server { listen 443; server_name localhost; ssl on; index index.html index.htm; #ssl_session_cache share:SSL:10m; ssl_session_timeout 10m; ssl_certificate ssl_key/server.crt; ssl_certificate_key ssl_key/server.key; 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 /soft/code; } } server { listen 80; server_name localhost; rewrite ^(.*) https://$server_name$1 redirect; }
6、检查是否支持苹果要求ATS协议
//仅能在苹果终端上使用 $ nscurl --ats-diagnostics --verbose https://192.168.0.113
三、https公有云实践
1、在云上签发各品牌数字证书,实现网站HTTPS化,使网站可信,防劫持、防篡改、防监听。并进行统一生命周期管理,简化证书部署,一键分发到云上产品。
上传阿里云证书, 并解压
[root@Nginx ssl_key]# rz rz waiting to receive. Starting zmodem transfer. Press Ctrl+C to cancel. Transferring 1524377920931.zip... 100% 3 KB 3 KB/sec 00:00:01 0 Errors //解压 [root@Nginx ssl_key]# unzip 1524377920931.zip 2、配置nginx https [root@Nginx conf.d]# cat ssl.nginx.test.com.conf server { listen 443; server_name nginx.test.com; index index.html index.htm; ssl on; ssl_session_timeout 10m; ssl_certificate ssl_key/1524377920931.pem; ssl_certificate_key ssl_key/1524377920931.key; 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 /soft/code; } } server { listen 80; server_name nginx.test.com; rewrite ^(.*) https://$server_name$1 redirect; }
测试访问,使用腾讯云ATS检测工具检查是否满足苹果IOS要求,苹果ATS – 证书选择及配置。
暂无评论内容