当前位置: 首页 > news >正文

鹤山市网站建设公司数据网站建设多少钱

鹤山市网站建设公司,数据网站建设多少钱,涂料网站源码,网站推广计划包括哪些多个定时器相互干扰的问题HTTPS协议是建立安全连接的公认标准。 理解此协议的工作原理不是问题#xff0c;并且自2000年以来可以使用相应的RFC文档 。 尽管HTTPS的使用如此广泛#xff0c;但您仍然可以找到没有不必要的复杂性就无法处理此协议的软件。 不幸的是#xff0c;… 多个定时器相互干扰的问题 HTTPS协议是建立安全连接的公认标准。 理解此协议的工作原理不是问题并且自2000年以来可以使用相应的RFC文档 。 尽管HTTPS的使用如此广泛但您仍然可以找到没有不必要的复杂性就无法处理此协议的软件。 不幸的是在使用该语言进行相互身份验证的过程中遇到了一些问题这些都不会让我感到惊讶。 它是Java 。 HTTPS如何工作 在描述实现过程中遇到的问题之前我将描述相互认证的工作原理。 HTTPS协议使用TLS / SSL协议来保护连接。 TLS / SSL协议定义了身份验证握手该握手允许以安全方式将任何客户端与服务器连接。 在握手过程中执行以下步骤 客户端发送消息以启动连接。 服务器将其证书发送给客户端。 客户端使用受信任的权威机构颁发的证书来验证证书。 服务器发送对客户端证书的请求。 客户端将其证书发送到服务器。 服务器验证客户端的证书。 服务器和客户端交换在数据加密期间使用的主密钥。 建立连接。 我们和队友一起尝试用Java实现HTTPS客户端。 结合我们对TLS / SSL握手的知识和来自curl的手动测试的经验我们假设实现客户端仅需要三个文件 一个客户端的证书 一个客户端的私钥和一个用于验证服务器证书的受信任证书 。 哦我们这么认为是多么错误。 Java –问题解决方案以及为什么如此困难 由于每天使用相互身份验证是很不常见的因此我们要求世界上最好的消息来源提供少量帮助。 初看Google叔叔提供的结果并没有揭示实现背后的复杂性但是每次点击结果都使我们找到了越来越混乱的解决方案其中一些是90年代的解决方案。 更糟糕的是我们不得不使用Apache HttpComponents来实现我们的连接但是大多数提议的解决方案都基于纯Java库。 来自互联网的知识使我们能够确定 Java不能直接使用任何证书或私钥例如curl Java需要单独的文件 Java Keystores 其中可以包含原始证书和密钥。 我们需要一个受信任的密钥库其中包含每个HTTPS连接的服务器证书验证所需的证书。 我们需要一个密钥密钥库其中包含客户端的证书和客户端的私钥以进行相互认证。 首先我们必须创建受信任的密钥库。 我们使用keytool命令使用证书创建了密钥库 $ keytool -import -alias trusted_certificate -keystore trusted.jks -file trusted.crt 我们将证书trusted.crt存储在密钥库文件trusted.jks中别名为trusted_certificate 。 在执行此命令期间要求我们输入此密钥库的密码。 我们稍后使用此密码来访问密钥库文件。 要创建密钥库需要执行一些其他步骤。 在大多数情况下您可能会从公司获得两个文件这些文件会颁发客户的证书。 第一个文件是pem格式的客户证书。 该证书将被发送到服务器。 第二个文件是客户端的私钥也是pem格式在握手过程中使用该私钥来确认您是客户端证书的所有者。 不幸的是 Java仅支持PKCS12格式。 因此我们必须将证书和私钥转换为PKCS12格式。 我们可以使用OpenSSL做到这一点。 $ openssl pkcs12 -export \-in client.crt \-inkey client.key \-out key.p12 \-name client 我们从文件client.crt和client.key生成了文件key.p12 。 再次需要输入密码。 此密码用于保护私钥。 通过将PKCS12导入新的密钥库可以从PKCS12格式的文件中生成另一个密钥库 $ keytool -importkeystore \-destkeystore key.jks \-deststorepass keystore_password \-destkeypass key_password_in_keystore \-alias client \-srckeystore key.p12 \-srcstoretype PKCS12 \-srcstorepass original_password_of_PKCS12_file 这个命令看起来有点复杂但是解密起来却很容易。 在命令的开头我们声明名为key.jks的新密钥库的参数。 我们定义了密钥库的密码和此密钥库将使用的私钥的密码。 我们还将私钥分配给密钥库中的某些别名在本例中为client 。 接下来我们指定源文件 key.p12 该文件的格式和原始密码。 使用trusted.jks和key.jks我们已经准备好进行编码。 第一步我们必须描述我们如何使用密钥库。 File trustedKeystoreFile new File(trusted.jks); File keystoreFile new File(key.jks);SSLContext sslcontext SSLContexts.custom().loadTrustMaterial(trustedKeystoreFile, trusted_keystore_password.toCharArray()).loadKeyMaterial(keystoreFile, keystore_password.toCharArray(), original_password_of_PKCS12_file.toCharArray()).build();SSLConnectionSocketFactory sslSocketFactory new SSLConnectionSocketFactory(sslcontext,new String[]{TLSv1.2},null,SSLConnectionSocketFactory.getDefaultHostnameVerifier()); 我们获取了密钥库文件并构建了SSL上下文。 接下来我们创建了套接字工厂该套接字工厂为我们的请求提供了正确的HTTPS连接。 最后我们可以从Java调用端点 try (CloseableHttpClient httpclient HttpClients.custom().setSSLSocketFactory(sslsf).build()) {HttpGet httpGet new HttpGet(https://ourserver.com/our/endpoint);try (CloseableHttpResponse response httpclient.execute(httGet)) {HttpEntity entity response.getEntity();System.out.println(response.getStatusLine());EntityUtils.consume(entity);} } 做完了 在创建了两个额外的文件密钥库之后这些文件等效于我们的原始证书和私钥我们使用Java实现了相互身份验证 。 用Java实现HTTPS连接也许有一定道理但是现在这只是一个头痛的事情。 翻译自: https://www.javacodegeeks.com/2016/03/mutual-problems-2.html多个定时器相互干扰的问题
http://www.huolong8.cn/news/157611/

相关文章:

  • 朗域装饰公司电话女生做sem还是seo
  • 网站开发量计算又一个wordpress博客
  • 外贸网站建设制作教程昵称小写 wordpress
  • 北京网站优化步骤网站推广咋做的
  • 网站备案转入西安有什么好玩的地方适合小孩
  • 建站购物网站杭州传媒公司
  • 做问卷的网站生成二维码网站可行性
  • 晋州网站建设哪家好手机制作网站的软件
  • 专业版装修用什么网站做导航条学生做的网站
  • ps做游戏下载网站有哪些一级a做爰网站中国
  • 建设工程项目编号在什么网站查河南专业网站建设公司排名
  • 网站推广怎么做中小企业经营管理培训班
  • 网站用图怎么做文件小质量高网站建设安全技术
  • 登封网站设计设计图片的手机软件
  • 福州营销网站建设技术厦门建设工程招标中心的网站
  • 南通网站建设知识wordpress登录原理
  • 注册域名以后怎么做网站跨境电商知名网站建设
  • 网站平台建设的重要性做商城网站都需要什么
  • 模板网站制作服务荥阳做网站推广
  • 网站留言板的作用上海论坛社区
  • 极速建站wordpress能做什么
  • 怎么给企业做网站客户开发软件工具
  • 微信推广网站网站建设费如何入账
  • 移动端网站开发项目报告做网站如何大网页
  • 个人网站制作的选题意义google网站增加关键词
  • 权重的网站古玩网站源码
  • 做网站做本地服务器wordpress主题 外贸
  • 法国化妆品进口报关做网站天津做宠物饲料的网站
  • 服务器外面打不开网站查查企业网
  • 网站空间后台怎么进入如何通过做网站赚钱