Tag: https
-

签署let’s encrypt证书报错 code”:9109,”message”:”Max auth failures reached, please check your Authorization header
一看到报错中包含Authorization,必定是认证错误,所以考虑是授权错误,此次签署证书是用的cloudflare 的token,顺思路想到是cf的认证不通过,手动执行认证token的命令: 是顺利通过的,没问题。 按照警察破案的思路,所以必须去案发现场看,登陆到cloudflare的token页面: https://dash.cloudflare.com/profile/api-tokens 立刻明白了,自己添加了Client IP Address Filtering ,新签署证书的Ip地址不在范围内。 这种低级错误很常见,比如你即使之前添加过IPv4地址,但是你服务器加了IPv6地址,你忘记了,系统会优先使用IPv6地址通信,所以就认证不过。 对于个人,在做好token保密的情况下,可以去掉 Client IP Address Filtering 的功能,没有必要。
-

The best detailed SSL Certificate check report tools
If i want to check my ssl https certificate ,i usually use two tools ,one is simple report ,sencond is more details , let’s look: 1、https://www.sslshopper.com/ssl-checker.html#hostname=moneyslow.com I only want to know Valid date and ssl Certificate Chain: 2、https://www.ssllabs.com/ssltest/analyze.html?d=moneyslow.com it takes about 2 minutes: It’s has a lot of ssl certificate check details ,include everything:
-

-

-

-

-

-

-

-

-

-

测试环境如何搞定域名或者ip地址签https证书?
开发人员在测试环境甚至正式环境下,需要自签证书实现https访问,第一个想到的是openssl的套件工具,但是参数比较繁琐,不容易记住。 这种情况下,已经有人实现了工具提供给我们使用,就是mkcert命令。 是一个用于生成本地自签名 SSL 证书的开源工具,项目基于 Golang 开发,可跨平台使用,不需要配置,支持多域名以及自动信任 CA。 接下来的步骤:1、生成根证书mkcert -install 2、签发证书mkcert youdomain.commkcert ip 查看根证书位置:% mkcert -CAROOT/Users/money/Library/Application Support/mkcert这个目录下的根证书,如果用firefox浏览器进行测试的话,需要双击进行导入,实现信任。
-
Certificate Transparency(证书透明)
SSL/TLS证书的证书透明度(Certificate Transparency)是证书授权机构的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址。查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索一些公开的CT日志。 在线查询:https://crt.sh/https://censys.io/https://developers.facebook.com/tools/ct/https://google.com/transparencyreport/https/ct/https://transparencyreport.google.com/https/certificates
-

openssl 查看证书细节(有效期|内容|签发者|转换格式)
OpenSSL包含一个命令行工具用来完成OpenSSL库中的所有功能,更好的是,它可能已经安装到你的系统中了。 OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH,但是,你不应该只将其作为一个库来使用,它还是一个多用途的、跨平台的密码工具。
-
nginx配置https证书错误NSS error -5938 (PR_END_OF_FILE_ERROR)
通过curl来检查: curl http://www.moneyslow.com -vv 会出现NSS error -5938 (PR_END_OF_FILE_ERROR)的错误。 从网络搜索答案,无非是防火墙443端口,update nss 之类的方法,不解决问题。 细细想了一下,最近http2也出过问题
-
如何为网站申请获取免费的Https证书(傻瓜教学,是傻瓜就进来)
这篇文章是科普,老鸟忽略。 我们如果想把网址http改成https,需要https的证书。 阿里云有免费的https证书申请,因为阿里云和证书厂商合作,有接口,直接签。 所以我们不用和https证书厂商直接打交道,只要在阿里云有账号,有域名,就可以申请。 下面是详细步骤: 1、在阿里云首页的产品与服务里找到ssl证书项目 2、点击购买证书 3 看到下面的图,默认是花钱的,你需要按照我标识的12345步骤去点: 4 到了付款界面,打勾付款,是0元。免费。 5 点击确认金额 6 支付成功界面 7 支付成功后,会显示一个待申请证书的界面。点击右下角的申请证书,需要开始填资料了。 8 这个界面里填资料,一般会自动带出来,就是写清楚你的身份信息,供核查。个人的话一般阿里云也不鸟你。等一会就证书下来了。 好了,申请完了。等几分钟,再到界面里看,证书就是已签发状态了。可以下载了。 证书有很多格式,根据你的web引擎去选择下载。 好了,这里申请免费https证书的步骤就结束了。
-
探测https证书支持协议的3种方法
nmap -sV –script ssl-enum-ciphers -p 443 <host> 参考 https://jumpnowtek.com/security/Using-nmap-to-check-certs-and-supported-algos.html openssl s_client -connect poftut.com:443 参考 https://www.poftut.com/use-openssl-s_client-check-verify-ssltls-https-webserver/ sslscan 参考 https://github.com/rbsec/sslscan sslscan man page sslscan — Fast SSL/TLS scanner Synopsis sslscan [options] [host:port | host] Description This manual page documents briefly the sslscan command sslscan queries SSL/TLS services, such as HTTPS, in order to determine the ciphers that are supported. SSLScan is designed…
-

nginx禁止ssl2和ssl3
Why disable SSL v2 en SSL v3?为啥要禁用ssl v2 ssl v3 SSL 2.0 and SSL 3.0 are obsolete versions of the SSL protocol that have long since been superseded by the more secure Transport Layer Security (TLS) protocol, dat betere beveiliging biedt. In addition, a SSL 3.0 security flaw nicknamed POODLE was discovered in 2014, allowing…
-

nginx强制http自动跳转到https访问
需求简介 基于nginx搭建了一个https访问的虚拟主机,监听的域名是moneyslow.com,但是很多用户不清楚https和http的区别,会很容易敲成http://moneyslow.com,这时会报出404错误,所以我需要做基于moneyslow.com域名的http向https的强制跳转 我总结了三种方式,跟大家共享一下 nginx的rewrite方法 思路 这应该是大家最容易想到的方法,将所有的http请求通过rewrite重写到https上即可 配置 server { listen 192.168.1.111:80; server_name moneyslow.com; rewrite ^(.*)$ https://$host$1 permanent; } 搭建此虚拟主机完成后,就可以将http://moneyslow.com的请求全部重写到https://moneyslow.com上了 nginx的497状态码 error code 497 497 – normal request was sent to HTTPS 解释:当此虚拟站点只允许https访问时,当用http访问时nginx会报出497错误码 思路 利用error_page命令将497状态码的链接重定向到https://moneyslow.com这个域名上 配置 server { listen 192.168.1.11:443; #ssl端口 listen 192.168.1.11:80; #用户习惯用http访问,加上80,后面通过497状态码让它自动跳到443端口 server_name moneyslow.com; #为一个server{……}开启ssl支持 ssl on; #指定PEM格式的证书文件 ssl_certificate /etc/nginx/test.pem; #指定PEM格式的私钥文件 ssl_certificate_key /etc/nginx/test.key; #让http请求重定向到https请求…
-

谷歌公共DNS正式支持DoH加密 更安全并且不影响速度
大家知道Google的DNS服务是:8.8.8.8以及8.8.4.4 DNS域名解析服务是影响网路速度非常重要的一环,DNS速度慢,你的网路速度再快也是枉然。Google的公共DNS服务是很好的工具,现在可以加密使用了。 Android 9用户可直接使用dns.google加密DNS服务。如果你是使用Android 9的用户,由于内建加密DNS的功能,只要在设定的地方输入「dns.google」即可采用Google加密DNS,更快也更安全。 为什么DNS加密这么重要?可能很多人不明白,为什么DNS也需要「加密」?其实加密最主要的目的,是为了防止「中间人攻击」,你的一切传输内容都可能被拦截偷走,例如部分网路运营商就会搞网路劫持的把戏。 HTTPS加密安全协定,可以有效阻止网站传输内容被拦截,但是DNS一旦没有加密被劫持,你的一切上网传输内容还是会被看光,这时候DNS加密就很重要了。 Cloudflare 提供了加密DNS服务,而现在Google总算也提供了加密服务,还没用的快来使用吧! Google DNS: IPv4:8.8.8.8 / 8.8.4.4 IPv6:2001:4860:4860::8888 / 2001:4860:4860::8844
-
Nginx的SSL模块配置和https配置
Nginx如果未开启SSL模块,配置Https时提示错误nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf原因也很简单,nginx缺少http_ssl_module模块,编译安装的时候带上–with-http_ssl_module配置就行了,但是现在的情况是我的nginx已经安装过了,怎么添加模块,其实也很简单,往下看: 做个说明:我的nginx的安装目录是/usr/local/nginx这个目录,我的源码包在/usr/local/src/nginx-1.6.2目录nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:37Nginx开启SSL模块切换到源码包:cd /usr/local/src/nginx-1.11.3查看nginx原有的模块/usr/local/nginx/sbin/nginx -V在configure arguments:后面显示的原有的configure参数如下:–prefix=/usr/local/nginx –with-http_stub_status_module那么我们的新配置信息就应该这样写:./configure –prefix=/usr/local/nginx –with-http_stub_status_module –with-http_ssl_module运行上面的命令即可,等配置完成后,运行命令make这里不要进行make install,否则就是覆盖安装然后备份原有已安装好的nginxcp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak然后将刚刚编译好的nginx覆盖掉原有的nginx(这个时候nginx要停止状态)cp ./objs/nginx /usr/local/nginx/sbin/然后启动nginx,仍可以通过命令查看是否已经加入成功/usr/local/nginx/sbin/nginx -VNginx 配置Http和Https共存 server { listen 80 default backlog=2048; listen 443 ssl; …
-

Google Chrome 版本 68.0.3440.75(正式版本)发布了,看看tomcat怎么配置https证书
安装证书 Tomcat支持JKS格式证书,从Tomcat7开始也支持PFX格式证书,两种证书格式任选其一。 文件说明: 1. 证书文件214850129130445.pem,包含两段内容,请不要删除任何一段内容。 2. 如果是证书系统创建的CSR,还包含:证书私钥文件214850129130445.key、PFX格式证书文件214850129130445.pfx、PFX格式证书密码文件pfx-password.txt。 1、证书格式转换 在Tomcat的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,附件中只包含214850129130445.pem文件,还需要将私钥文件拷贝到cert目录,命名为214850129130445.key;如果是系统创建的CSR,请直接到第2步。 到cert目录下执行如下命令完成PFX格式转换命令,此处要设置PFX证书密码,请牢记: openssl pkcs12 -export -out 214850129130445.pfx -inkey 214850129130445.key -in 214850129130445.pem 2、PFX证书安装 找到安装Tomcat目录下该文件server.xml,一般默认路径都是在 conf 文件夹中。找到 <Connection port=”8443″标签,增加如下属性: keystoreFile=”cert/214850129130445.pfx” keystoreType=”PKCS12″ #此处的证书密码,请参考附件中的密码文件或在第1步中设置的密码 keystorePass=”证书密码” 完整的配置如下,其中port属性根据实际情况修改: <Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true” scheme=”https” secure=”true” keystoreFile=”cert/214850129130445.pfx” keystoreType=”PKCS12″ keystorePass=”证书密码” …
-
chrome 68.0.3440.75(正式版本)发布了,所有http都是不安全,看看apache怎么配置证书?
假设你得到了证书: 214850129130445.pem 214850129130445.key 文件说明: 1. 证书文件214850129130445.pem,包含两段内容,请不要删除任何一段内容。 2. 如果是证书系统创建的CSR,还包含:证书私钥文件214850129130445.key、证书公钥文件public.pem、证书链文件chain.pem。 ( 1 ) 在Apache的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214850129130445.key; ( 2 ) 打开 apache 安装目录下 conf 目录中的 httpd.conf 文件,找到以下内容并去掉“#”: #LoadModule ssl_module modules/mod_ssl.so (如果找不到请确认是否编译过 openssl 插件) #Include conf/extra/httpd-ssl.conf ( 3 ) 打开 apache 安装目录下 conf/extra/httpd-ssl.conf 文件 (也可能是conf.d/ssl.conf,与操作系统及安装方式有关), 在配置文件中查找以下配置语句: # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on #…
-

版本 68.0.3440.75(正式版本)发布了,看看nginx怎么配置?
假设你得到了证书: 214850129130445.pem 214850129130445.key 文件说明: 1. 证书文件214850129130445.pem,包含两段内容,请不要删除任何一段内容。 2. 如果是证书系统创建的CSR,还包含:证书私钥文件214850129130445.key。 ( 1 ) 在Nginx的安装目录下创建cert目录,并且将下载的全部文件拷贝到cert目录中。如果申请证书时是自己创建的CSR文件,请将对应的私钥文件放到cert目录下并且命名为214850129130445.key; ( 2 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到: # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; #…
-

全站https技术要点及注意事项
HSTS(HTTP Strict Transport Security) 通过Web服务器上的设置,在收到HTTP访问请求时,返回的header里带有Strict-Transport-Security字段,告知浏览器必须使用HTTPs进行访问。 但是,HSTS并不能避免首次跳转时遇到的劫持。要彻底解决这个问题,可以申请加入Preload List(预加载列表)。 Preload List是由Google Chrome维护的“HTTPs站点列表”,Chrome, Firefox, Safari, Edge, IE 11均在使用。一旦浏览器发现要访问的站点在Preload List上,默认就会发起HTTPs链接。这样,就避免了HSTS的首次跳转被劫持的隐患。 SSL卸载 采用F5来做负载均衡,F5应付单纯的L4和L7的流量是没有问题的,但进行SSL卸载时性能往往会急剧降低,F5可以提供专门的加速卡来解决这个问题,但价格不便宜。所以,还需要专门环节来进行SSL卸载,常见的Nginx和HAProxy都可以执行这个任务。 客户端证书 与浏览器不同的是,C#信任的根证书在localmachinestore或者currentuserstore中,Java信任的根证书在JDK安装目录下的cacerts目录中,iOS和Android的证书管理又有不同。 浏览器的证书在使用中又可以持续更新,用户往往感知不到,如果“想当然”认为浏览器验证通过就万事大吉,很可能会出问题。比如国内有不少网站使用WoSign签发的证书,但老版本的JDK并不信任WoSign的根证书,用浏览器浏览没问题的网站,程序就会报错,除非手动导入证书。Android的信任列表是随固件更新而更新的,4.2以后才内置WoSign的信任。因为WoSign行为不端,前几天Firefox, Chrome, Safari等主流浏览器又取消了对它的信任,也就意味着WoSign证书有安全风险,所以已经内置WoSign根证书的程序也应当做对应的设置。 服务器端证书 用浏览器验证没有问题的HTTPs站点,用程序访问就有问题。这是为什么? 在服务器上证书配置错误,只有最终证书,而缺少中级证书的情况。通常,最终证书里包含了中级证书相关的信息,所以如果缺少中级证书,浏览器为了建立证书链,会做一次耗时的操作来获取中级证书,而且这一切都发生在HTTPs连接真正建立之前。更糟糕的是,不少浏览器为了“表现更好”,会想办法绕过这个问题。所以缺少中级证书的情况一直存在,一直不会被发现,而程序调用的速度总是上不去,甚至有一定几率报错。 证书大小: 如果把证书链配置完全,还要注意证书链的大小。有一些网站的完整证书异乎寻常地大,达到若干kb甚至几十kb,也就是说,在建立连接之前,就必须先传输这么多的数据。如果做单纯的PC网页浏览,或许不会有问题。但对于移动端和程序调用来说,这就是一场灾难。最好的办法,是用OpenSSL配合WireShark之类的工具,自己动手来测试。如果你熟悉TCP相关的知识,往往可以得到更好的优化方案。 OCSP和CRL也不可忽略。这两项技术用来保证撤回证书(让证书失效)的有效性。如果你仔细观察,会发现证书里都指定了对应的OCSP或者CRL的URL,用来检查证书是否失效。按道理说,在每次建立HTTPs连接时,都应当进行OCSP或CRL检查。返回结果通常在1k左右,如果请求非常频繁,这个因素也应当考虑。 SNI 大家都熟悉“虚拟主机”的概念,它可以让多个域名对应到同一个IP,让同一台服务器服务多个站点。在HTTP时代,可以在header中通过host来指定需要访问的域名,一切看起来都那么完美。 但是在HTTPs时代,却没有这样的好事,传统的HTTPs服务很难让多个域名对应到同一个IP。在进行到HTTP通讯之前,必须先建立验证证书建立连接。如果一个IP上绑定了多个域名,这个阶段服务器根本没法知道请求对应的是哪个域名,无疑会造成极大的不便。 为了解决这种问题,SNI(Server Name Identification)应运而生了。这种技术说起来复杂,大家可以把它简单理解为“建立SSL/TLS通讯时的host header”,这样就解决了一个IP只能配单张证书的问题。 然而SNI的诞生历史并不长,许多客户端的支持都存在奇怪的问题。比如JDK7支持SNI,但是JDK8的支持又有bug。而且这种支持往往需要调用原生的API才可以实现,Resteasy之类的类库并不支持。如果对SNI的支持有问题,即便配置正确也可能无法建立连接,因为服务端并不能识别此请求需要的证书。 CDN CDN已经是业界流行的技术了,对稍微大一点的网站来说,没有CDN几乎是不可想象的。HTTP时代的CDN方案相当成熟,HTTPs的情况则不是如此。 要使用HTTPs的CDN服务,就要决定是否将证书交给CDN提供商。基于中国目前的商业信誉水平,把证书交给CDN提供商的风险不可不考虑。恶意揣测,别有用心的人一旦拿到证书,可以很方便地通过DNS劫持发起中间人攻击,而完全不被感知到。 另外,HTTP时代大家都喜欢将资源分散到多个不同的域名,因为建立连接的成本很低,而同一个域名的并发连接数有限。在HTTPs环境下,每次建立连接的成本高了很多,频繁下载和验证证书对移动设备和移动网络影响很大(尤其是证书很大的情况)。如果域名非常分散,影响就更加显著。所以在HTTPs时代,把域名收缩集中反而是更好的办法。 内容及其它 因为HTTPs的内容中无法引用HTTP的资源,所以应当保证网页中资源文件的链接都是HTTPs的。遗留的许多系统很可能并不注意这些事情,资源都采用绝对地址的形式,这样改起来工作量很大。如果要修改,最好一步到位,直接改成“协议相对URL”。 绝对地址URL:http://www.a.com/b.css 协议相对URL://www.a.com/b.css 这样浏览器就可以根据当前的协议,自动生成资源的绝对地址,无论是HTTP还是HTTPs,都可以自由切换。 如果资源都是自有的,切换HTTPs就相对容易。如果存在外部,尤其是UGC的资源,切换到HTTPs就很麻烦。如果是超链接,通常采用专门的跳转服务,也就是下面这样: https://link.my.com/target=www.you.com 如果是图片这类资源,可以设定专门的程序将其抓取过来存放在自己的服务器上,再将地址替换掉即可。但是,这样做很可能要自己承担流量压力,同时还要承担恶意程序攻击的风险。 如果是视频、游戏等富文本、交互复杂的资源,如果源站没有提供HTTPs的服务,多半只能忍痛割爱,放弃内嵌展现的形式了。
-
https证书申请过程中的域名验证方式
通常有三种域名验证的方式: 1、文件验证 证书服务商会给你一个文件,让你放到你域名指定的地方,比如 www.moneyslow.com/.well-known/pki-validation/fileauth.txt 2、邮件验证 你需要提供一个邮箱地址,证书服务商给你发邮件,你要点里面的链接完成验证。 3、DNS记录验证 要求你添加一个TXT记录,注意这里有一个问题,如果你的域名已经cname到其他地方了,你就要添加一个该域名的下级域名的TXT记录,比如: a.com 已经cname 到 b.com ,你想为a域名申请证书并添加TXT记录进行验证,你是直接加不上TXT记录的,怎么办呢? 解决方法: 添加 _dnsauth.a.com 的TXT记录即可 4、其他验证(ov或者ev的证书) 给你打电话,让你发企业营业执照之类的,花钱多,高大上。
-
ssl证书 nginx、apache、tomcat、IIS8、IIS6 下证书的安装方法
Nginx:安装证书 ( 1 ) 打开 Nginx 安装目录下 conf 目录中的 nginx.conf 文件,找到 # HTTPS server # #server { # listen 443; # server_name localhost; # ssl on; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_timeout 5m; # ssl_protocols SSLv2 SSLv3 TLSv1; # ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP; # ssl_prefer_server_ciphers on; # location / { ## #} #} ( 2…
-

nginx中80端口跳转到443端口的方法
网站升级为https后,需要将http的访问跳转到https,可以用如下nginx的配置方法: server { listen 80; listen 443 ssl; server_name moneyslow.com blogcdn.a8z8.com; if ($ssl_protocol = “”) { rewrite ^ https://$server_name$request_uri? permanent; } 。。。。。。。 }
-
使用HTTPS加密的7大理由
为什么必须启用HTTPS加密? 1、HTTPS加密使网站速度更快! 首先强调速度是因为,一个网站的性能通常跟访客销售转化、页面加载时间对收入的影响等指标直接挂钩。这是一个被非常非常非常广泛记录的问题,有很多大型网站和工具可以展示HTTPS如何变得更快。 2、HTTP/2协议只支持HTTPS加密连接 我们终于在网络技术方面取得了一次大飞跃,推出了HTTP/2协议取代已经使用了超过15年的HTTP/1.1协议。使用HTTP/2有一大堆的好处,但是在这篇文章里我们需要关注的关键点就是:所有主流浏览器只支持使用TLS1.2协议安全连接的HTTP/2协议。Chrome、火狐、Safari、Opera、IE和Edge都要求使用HTTPS加密连接,才能使用HTTP/2。这对网站所有者来说是另一个有利的推动因素。 3、HTTP页面将标记”不安全” 当用户访问网站时,没人想要浏览器上的红色警告,但是如果你的网站采用HTTP链接来传输数据,那红色警告将成为常态。 以前浏览器对不安全的HTTP页面没有任何标记,而只含有部分不安全因素的HTTPS页面却显示安全警告,让人们误以为含有不安全因素HTTPS页面不如HTTP页面安全,这是非常错误的。谷歌和火狐将在标识上做进一步优化,区分HTTP不安全连接和HTTPS安全连接,谷歌Chrome将为所有HTTP网站打红叉,用户可以在Chrome 48或者部分更老版本中体验到这项全新的功能;火狐浏览器将从 Firefox 的开发版 46 开始,对”使用非HTTPS提交密码”的页面进行警告。网站所有者将有更充分的理由让网站支持HTTPS加密。 4、HTTPS加密提升搜索排名 所有人都希望得到很好的搜索引擎排名,网站使用HTTPS加密连接可以帮助你的网站提升搜索引擎排名!谷歌早在2014年就宣布,将把HTTPS加密作为影响搜索排名的重要因素,并优先索引HTTPS网页。百度也公告表明,开放收录https站点,同一个域名的http版和https版为一个站点,优先收录https版;百度官方还表示,网站HTTPS加密不会对流量产生负面影响。在搜索引擎巨头的倡导和实践下,我们可以预见HTTPS加密将在未来产生越来越大的影响力。 5、HTTPS加密防止中间人流量劫持 当你的网站通过HTTP连接传输网页内容时,WiFi节点、运营商、路由器等任何传输节点都可以对网站传输内容进行劫持、篡改、恶意注入等,比如早已见惯的广告弹窗。很多人已经对此麻木,并认为流量劫持不会造成什么损失,但是服务器采取HTTP不安全连接,其实是给黑客留下一道后门,可以向你的网页注入任意恶意内容,如盗号木马等,通过多种你无法觉察的方式窃取网站数据或向您的终端用户下手。HTTPS加密可以有效阻止流量劫持,尤其是全站HTTPS加密,封装所有流量加密传输,让中间人没有可乘之机。 6、iOS和安卓都要求使用HTTPS加密 苹果iOS的App Transport Security和谷歌安卓的usesCleartextTraffic manifest attribute,都推动移动APP默认使用HTTPS加密连接进行通信。苹果iOS强制APP使用HTTPS加密连接,并且要求非常严格,包括只使用TLS1.2协议,必须使用RSA2048位或ECC256位的公钥算法及SHA256签名算法等。如果你的内容或API接口需要在移动APP上使用,那么必须按要求使用HTTPS加密连接。 7、超级权限应用禁止使用HTTP连接 谷歌Chrome安全团队宣布,采用不安全连接访问浏览器特定功能将被禁止访问,例如地理位置应用、应用程序缓存、获取用户媒体等。 采用不安全的HTTP连接访问用户位置信息并发送,可能造成用户信息的泄漏,确保这类超级权限功能全程使用HTTPS安全连接是使用这些功能的重要步骤。如果你最近使用了一些这样的功能并且希望继续在你的网站上使用,那么你必须让这些页面使用HTTPS加密连接。同样,如果你想增加这些功能,你需要首先设置HTTPS加密连接。 使用HTTPS加密的误区 1、HTTPS加密降低网站性能? 虽然TLS的计算量较大,但以目前的设备性能和硬件技术来说,已经不成问题。淘宝、天猫于2015年实现全站HTTP加密,涉及数百个应用、超百万个页面,并顺利通过”双十一”海量流量考验。淘宝分享全站HTTPS技术改造细节时,阿里巴巴技术保障部技术专家李振宇介绍,阿里电商在启用全站HTTPS后,性能不降反升,用户访问网站和移动端更为流畅。 2、启用HTTPS加密成本昂贵? 启用HTTPS加密需要向CA机构申请SSL证书, Startcom可提供免费SSL证书。个人站长的博客站点可以申请免费SSL证书,零成本实现HTTPS加密,而企业级网站建议还是付费申请企业级以上的SSL证书,如OV SSL证书或EV SSL证书。任何新站点或新的web应用都应该上线前启用HTTPS加密,这是最经济有效的方式。已经上线但尚未启用HTTPS加密的网站,可以向沃通CA咨询HTTPS加密改造方案,尽早开启HTTPS加密,迎接全球HTTPS加密浪潮。
-
ssl解密:浏览器如何认识中级证书和根证书
浏览器的安装包里,保存着一些它信任的根证书(公钥)。 证书发行商们为了安全,通常会将这些根证书对应的私钥保存在绝对断网的金库里。在金库里用这些根私钥,签发一些“中级”证书,这些中级证书的私钥拥有签发再下一级证书的权限。这些中级私钥被安装到在线服务器上,通过签发网站证书来赚钱。一旦这些服务器被黑,发行商就可以利用金库里物理隔离的根证书私钥,可以签发吊销令,消灭这些中级证书的信任,而不必让各家浏览器彻底不信任这家发行商的根证书。再签一条新的中级发行证书,又是一条能赚钱的好汉。 问题来了。 浏览器只认根证书。中级证书的认证,你(网站)得自己开证明。 一个正确配置的HTTPS网站应该在证书中包含完整的证书链。 比如以 openssl s_client -connect www.wosign.com:443 命令来查看wosign自己的网站配置。 其余内容可以无视,只看Certificate chain这一段: — Certificate chain 0 s:/1.3.6.1.4.1.311.60.2.1.3=CN/1.3.6.1.4.1.311.60.2.1.2=Guangdong/1.3.6.1.4.1.311.60.2.1.1=Shenzhen/businessCategory=Private Organization/serialNumber=440301103308619/C=CN/ST=\xE5\xB9\xBF\xE4\xB8\x9C\xE7\x9C\x81/L=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82/postalCode=518067/street=\xE6\xB7\xB1\xE5\x9C\xB3\xE5\xB8\x82\xE5\x8D\x97\xE5\xB1\xB1\xE5\x8C\xBA\xE5\x8D\x97\xE6\xB5\xB7\xE5\xA4\xA7\xE9\x81\x931057\xE5\x8F\xB7\xE7\xA7\x91\xE6\x8A\x80\xE5\xA4\xA7\xE5\x8E\xA6\xE4\xBA\x8C\xE6\x9C\x9FA\xE6\xA0\x8B502#/O=WoSign\xE6\xB2\x83\xE9\x80\x9A\xE7\x94\xB5\xE5\xAD\x90\xE8\xAE\xA4\xE8\xAF\x81\xE6\x9C\x8D\xE5\x8A\xA1\xE6\x9C\x89\xE9\x99\x90\xE5\x85\xAC\xE5\x8F\xB8/CN=www.wosign.com i:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA 1 s:/C=CN/O=WoSign CA Limited/CN=WoSign Class 4 EV Server CA i:/C=CN/O=WoSign CA Limited/CN=Certification Authority of WoSign 2 s:/C=CN/O=WoSign CA Limited/CN=Certification Authority of WoSign i:/C=IL/O=StartCom Ltd./OU=Secure Digital Certificate Signing/CN=StartCom Certification…
-
https的压力测试工具siege用法
jeo dog 是个有10多年历史的软件站,有个https的工具siege很厉害,几乎国内没有使用的,今天介绍给大家。 先下载安装: wget http://download.joedog.org/siege/siege-3.0.5.tar.gz tar -xzvf siege-3.0.5.tar.gz cd siege-3.0.5 ./configure –prefix=/home/2hei.net/siege –with-ssl=/usr/include/openssl make && make install 运行测试,模拟1000用户打压5分钟: /home/2hei.net/siege/bin/siege -c 1000 -t 5m https://xxx.com 结果: Lifting the server siege… done. Transactions: 376673 hits Availability: 99.98 % Elapsed time: 299.70 secs Data transferred: 114.59 MB Response time: 0.29 secs Transaction rate: 1256.83 trans/sec Throughput: 0.38…