https

作者: 云烟1f3bca320ba6 | 来源:发表于2016-12-28 23:19 被阅读0次

https

作用:防止中间人攻击,防篡改和隐私泄露

一般加密算法

  • 非对称加密算法:RSA,DSA/DSS
  • 对称加密算法:AES,RC4,3DES
  • HASH算法:MD5,SHA1,SHA256

加密协议

  • TLS 1.0,SSL 3.1
  • TLS 1.1,SSL 3.2
  • TLS 1.2,SSL 3.3

SSL握手

ssl_handshake_rsa.jpg

CA

CA用来签发证书。浏览器客户端内置了一些信任的证书,防止中间人攻击。

自建CA

//建立根证书
cd /etc/pki/CA/
touch index.txt serial
echo 01 > serial
openssl genrsa -out private/cakey.pem 2048
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -sha256 -day 1000
//从根证书申请证书
mkdir /root/ssl
cd /root/ssl
openssl genrsa -out test.key 2048
openssl req -new -sha256 -key test.key -out test.csr
cp test.key /etc/pki/CA/csr
openssl ca -in /etc/pki/CA/csr/test.csr -out test.crt -days 1000 -md sha256

//双向认证使用命令,pfx用来导入浏览器
openssl pkcs12 -export -inkey test.key -in test.crt -out test.pfx

nginx配置

ssl on;
ssl_certificate /root/ssl/test.crt;
ssl_certificate_key /root/ssl/test.key;

#下面为客户端认证配置
ssl_client_certificate /usr/local/nginx/ca/private/ca.crt; 
ssl_verify_client on;  #开户客户端证书验证 

keyless

需要使用类似cdn服务,需要提供私钥,不安全,使用keyless解决问题

hsts

使得http重定向跳转到https

java调用https

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.4.1</version>
</dependency> 
String keyStoreFile = "/root/aa.keystore";
String password = "111111";
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream in = new FileInputStream(keyStoreFile);
ks.load(in, password.toCharArray());

String trustStoreFile = "/root/aa.keystore";
String trustPassword = "111111";
KeyStore ts = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream tsIn = new FileInputStream(trustStoreFile);
ks.load(tsIn, trustPassword.toCharArray());

SSLContext sslContext = new SSLContextBuilder().loadKeyMaterial(ts, trustPassword.toCharArray()).loadTrustMaterial(ks).build();
CloseableHttpClient httpclient = HttpClients.custom().setSslcontext(sslContext).setSSLHostnameVerifier(new NoopHostnameVerifier()).build();

相关文章

  • https VS https

    HTTPS=SSL+HTTPHTTP协议传输的数据是未加密的 ,也就是明文,因此使用HTTP协议传输隐私信息非常不...

  • HTTPS

    什么是HTTPS HTTPS(全称:Hypertext Transfer Protocol over Secure...

  • HTTPS

    HTTP 有以下安全性问题: 使用明文进行通信,内容可能会被窃听;(请求时,需加密) 不验证通信方的身份,通信方的...

  • HTTPS

    站点证书的有效性 SSL 自身不要求用户检查Web服务器证书,但大部分现代浏览器都会对证书进行简单的完整性检查,并...

  • Https

    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取。所以很多银行网站或电子邮箱等等安全级别较高的服务都会采...

  • HTTPS

    1.为什么要有HTTPS2.HTTPS的工作原理3.密码学4.HTTPS的优缺点5.在iOS中使用HTTPS 为什...

  • HTTPS

    精悍小文:https是如何工作的? - 简书 急速开发系列——打造完善的https使用方案 - 简书

  • https

    摘自[白话Https]https://www.cnblogs.com/xinzhao/p/4949344.html...

  • HTTPS

    一、背景 对于大规模的购物、银行事务或访问机密数据来说,这些重要的事务需要将 HTTP和数字加密技术结合起来使用,...

  • HTTPS

    在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用 HTTPS 通信机制可以有效地防止这些问题。本篇...

网友评论

      本文标题:https

      本文链接:https://www.haomeiwen.com/subject/unduvttx.html