Akamai Origin ERR_FWD_SSL_HANDSHAKE

Background We recently took a project from another team which has CICD pipeline setup that creates a CloudFront(CF) Distro each time and direct traffic for static content and api from there based on path. The static content is fronted via Akamai then route 53(r53) then CF. CF contains the r53 domains as cname, however without…

Akamai CloudFront Certificate pinning

We recently took over a project that has some static angularJS code hosted in via standard Route 53 -> CloudFront -> S3. And domain CDN is using Akamai which has origin set to the R53 url. Akamai has a `Specific Certificates (pinning)` setting to pull certificate from a *.cloudfront.net.  Over the weekend something odd happened,…

EMR hive JDBC over SSL with ELB

Recently we need to setup a hive cluster consuming S3 objects so that we could run query from our java server(tomcat) via JDBC. Several challenges: our java server is on prem(will move to aws in 2017) so we have to secure the channel to the ERM cluster in emr. Solution: use SSL cross the board….

How SSL works

Simple version Your web browser downloads the web server’s certificate, which contains the public key of the web server. This certificate is signed with the private key of a trusted certificate authority. Your web browser comes installed with the public keys of all of the major certificate authorities. It uses this public key to verify…

数字证书的原理与实现

数字证书概述   数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。   数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题。   数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。认证中心(CA)作为权威的、可信赖的、公正的第三方机构,专门负责为各种认证需求提供数字证书服务。认证中心颁发的数字证书均遵循X.509 V3标准。X.509标准在编排公共密钥密码格式方面已被广为接受。X.509证书已应用于许多网络安全,其中包括IPSec(IP安全)、SSL、SET、S/MIME。 A good video on Digital Certificate detail 数字证书使用   每一个用户有一个各不相同的名字,一个可信的证书认证中心(CA)给每个用户分配一个唯一的名字并签发一个包含名字和用户公开密钥的证书。   如果甲想和乙通信,他首先必须从数据库中取得乙的证书,然后对它进行验证。如果他们使用相同的CA,事情就很简单。甲只需验证乙证书上CA的签名;如果他们使用不同的CA,问题就复杂了。甲必须从CA的树形结构底部开始,从底层CA往上层CA查询,一直追踪到同一个CA为止,找出共同的信任CA。   证书可以存储在网络中的数据库中。用户可以利用网络彼此交换证书。当证书撤销后,它将从证书目录中删除,然而签发此证书的CA仍保留此证书的副本,以备日后解决可能引起的纠纷。   如果用户的密钥或CA的密钥被破坏,从而导致证书的撤销。每一个CA必须保留一个已经撤销但还没有过期的证书废止列表(CRL)。当甲收到一个新证书时,首先应该从证书废止列表(CRL)中检查证书是否已经被撤销。   现有持证人甲向持证人乙传送数字信息,为了保证信息传送的真实性、完整性和不可否认性,需要对要传送的信息进行数字加密和数字签名,其传送过程如下: (1)甲准备好要传送的数字信息(明文)。 (2)甲对数字信息进行哈希(hash)运算,得到一个信息摘要。 (3)甲用自己的私钥(SK)对信息摘要进行加密得到甲的数字签名,并将其附在数字信息上。 (4)甲随机产生一个加密密钥(DES密钥),并用此密钥对要发送的信息进行加密,形成密文。 (5)甲用乙的公钥(PK)对刚才随机产生的加密密钥进行加密,将加密后的DES密钥连同密文一起传送给乙。 (6)乙收到甲传送过来的密文和加过密的DES密钥,先用自己的私钥(SK)对加密的DES密钥进行解密,得到DES密钥。 (7)乙然后用DES密钥对收到的密文进行解密,得到明文的数字信息,然后将DES密钥抛弃(即DES密钥作废)。 (8)乙用甲的公钥(PK)对甲的数字签名进行解密,得到信息摘要。 乙用相同的hash算法对收到的明文再进行一次hash运算,得到一个新的信息摘要。 (9)乙将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。 FROM HERE AND HERE HERE is a good series of how to secure webservice