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

商城网站开发报价单献县做网站价格

商城网站开发报价单,献县做网站价格,自己做外贸 建一个网站,泉州台商区建设局网站http是无状态的#xff0c;https是在http应用层协议和tcp传输控制层之间加了一层#xff0c;主要功能包括加密传输内容#xff0c;校验信息是否完整#xff0c;信息是否被篡改等。http的网络传输#xff0c;源端应用层发送http请求#xff0c;传输到源端的控制层#xf…        http是无状态的https是在http应用层协议和tcp传输控制层之间加了一层主要功能包括加密传输内容校验信息是否完整信息是否被篡改等。http的网络传输源端应用层发送http请求传输到源端的控制层网络层物理层-到对方的物理层-网络层-传输控制层-应用层https就是在两边的控制层和应用层之间加了一层SSL/TLS协议层。发送时将http的明文加密接收时解密校验是否完整是否被篡改在正确无误的明文发送给目标端的应用层作为http报文。 发送方应用层http明文-SSL/TLS-秘文-控制层 接收方控制层秘文-SSL/TLS-明文-应用层http 加密方式分为对称加密非对称加密对称加密加密强度弱耗时短使用相同的key加解密非对称加密加密强度高耗时长一个使用公钥一个使用私钥。 tls握手流程 步骤一tls握手和密钥交换非对称加密阶段 1.客户端发送自己tls版本支持的加密方式随机数 2.服务器回复选择的加密方式随机数和证书证书包括认证机构服务器地址公钥有效期等 3.客户端验证证书。查看证书的公钥服务器地址过期时间ca签名等 4.客户端生成一个用于对数据加密的对称密钥并用服务器的公钥将这个对称密钥加密传输给服务器 5.服务器用私钥解密获取到对称密钥。 步骤二数据传输对称加密阶段 每次发送数据使用对称密钥对数据进行加密服务器解密后传输给应用层。再将引用层的响应信息加密发送给客户端。 java发送https请求需要怎么做 1.生产环境必须使用权威CA颁发的证书禁止信任所有证书。 2.自签名证书仅限测试环境生产环境使用会到安全风险。 3.导入证书到JVM信任库 通过keytool将CA证书导入JVM默认信任库cacerts: keytool -import -alias server_cert -file server.crt -keystore $JAVA_HOME/lib/security/cacerts 输入默认密码changeit,完成后重启应用生效。 若需要隔离应用证书可创建独立的信任库 keytool -import -alias my_ca -file ca.crt -keystore /path/to/my_truststore.jks ​ #启动时指定JVM参数 -Djavax.net.ssl.trustStore/path/to/my_truststore.jks -Djavax.net.ssl.trustStorePasswordyour_password [6,8](ref) https请求实现方式 1.使用JAVA标准库 import javax.net.ssl.HttpsURLConnection; import java.net.URL; import java.io.BufferedReader; import java.io.InputStreamReader; ​ public class HttpsExample {public static void main(String[] args) throws Exception {URL url new URL(https://api.example.com/data);HttpsURLConnection conn (HttpsURLConnection) url.openConnection();conn.setRequestMethod(GET); ​// 验证响应try (BufferedReader in new BufferedReader(new InputStreamReader(conn.getInputStream()))) {String line;while ((line in.readLine()) ! null) {System.out.println(line);}}} } 2.使用Apache HttpClient推荐 #maven依赖 dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.13/version /dependency import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContexts; import org.apache.http.client.methods.HttpGet; import org.apache.http.util.EntityUtils; ​ public class HttpClientExample {public static void main(String[] args) throws Exception {// 加载信任库可选默认使用JVM信任库SSLContext sslContext SSLContexts.custom().loadTrustMaterial(null, (chain, authType) - true) // 生产环境需替换为证书验证逻辑.build(); ​try (CloseableHttpClient httpClient HttpClients.custom().setSSLContext(sslContext).build()) {HttpGet httpGet new HttpGet(https://api.example.com/data);HttpResponse response httpClient.execute(httpGet);String result EntityUtils.toString(response.getEntity());System.out.println(result);}} } 3.使用OkHttp(高性能首选) dependencygroupIdcom.squareup.okhttp3/groupIdartifactIdokhttp/artifactIdversion4.11.0/version /dependency import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; ​ public class OkHttpExample {public static void main(String[] args) throws Exception {OkHttpClient client new OkHttpClient.Builder().sslSocketFactory(sslContext.getSocketFactory(), trustManager) // 生产环境需配置真实TrustManager.build(); ​Request request new Request.Builder().url(https://api.example.com/data).build(); ​try (Response response client.newCall(request).execute()) {System.out.println(response.body().string());}} } 为什么客户端需要安装CA证书 1.验证服务器身份(核心作用) 服务器证书的合法性验证当客户端java程序访问HTTPS服务器时服务器会返回它的数字证书客户端需要使用CA证书验证服务器证书是否由可信结构签发是否被篡改域名是否匹配等。 2.信任链的建立 证书链验证服务器证书通常由中间CA签发而中间CA的合法性需由根CA证书验证。java默认信任库cacerts内置了权威CA的根证书用于逐级验证整个证书链。 未安装CA证书的后果若服务器证书的签发CA不在客户端信任库中Java会抛出异常拒接链接。 开发环境与生产环境为什么不同 1.开发环境开发测试时使用自签名证书非CA签发浏览器或Java默认不信任此类证书。 验证方式 1.忽略验证仅限测试通过自定义TrustManager跳过证书检查高风险生产禁用 2.手动导入信任库将自签名证书导入JVM的cacerts文件使java临时信任该证书。 keytool -import -alias dev_cert -file dev.crt -keystore $JAVA_HOME/lib/security/cacerts 目的快速测试HTTPS功能避免频繁申请CA证书的成本。 2.生产环境必须使用权威CA(如Lets Encrypt,DigiCert)签发的证书确保全局可信 验证机制 1.自动信任链验证依赖JVM内置的cacerts信任库(含主流CA根证书),无需额外配置。 2.证书生命周期管理需监控有效期及时续期避免服务中断 生产环境代码应该如何修改 #### //替换开发代码中的跳过验证部分.loadTrustMaterial(null,(chain,authType)-true) KeyStore trustStore KeyStore.getInstance(JKS); try (InputStream is new FileInputStream(truststore.jks)) {trustStore.load(is, truststore_password.toCharArray()); } ​ SSLContext sslContext SSLContexts.custom().loadTrustMaterial(trustStore, null) // 启用信任库验证.build(); 双向验证 若需客户端证书认证如银行接口 KeyStore keyStore KeyStore.getInstance(PKCS12); keyStore.load(new FileInputStream(client.p12), client_pass.toCharArray()); ​ SSLContext sslContext SSLContexts.custom().loadKeyMaterial(keyStore, client_pass.toCharArray()) // 加载客户端证书.loadTrustMaterial(trustStore, null) // 加载信任库.build(); 生产环境完整代码示例 import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.ssl.SSLContexts; import org.apache.http.util.EntityUtils; import java.io.FileInputStream; import java.security.KeyStore;public class ProductionHttpsClient {public static void main(String[] args) throws Exception {// 1. 加载信任库生产环境使用CA证书KeyStore trustStore KeyStore.getInstance(JKS);try (InputStream is new FileInputStream(/path/to/truststore.jks)) {trustStore.load(is, truststore_pass.toCharArray());}// 2. 初始化SSLContext启用完整证书验证SSLContext sslContext SSLContexts.custom().loadTrustMaterial(trustStore, null) // 关键修改启用CA验证.build();// 3. 创建HttpClient使用默认域名校验try (CloseableHttpClient httpClient HttpClients.custom().setSSLContext(sslContext).build()) {// 4. 发送请求HttpGet httpGet new HttpGet(https://api.example.com/data);try (CloseableHttpResponse response httpClient.execute(httpGet)) {String result EntityUtils.toString(response.getEntity());System.out.println(result);}}} } 生产环境注意事项 1.证书管理 监控CA证书有效期提前续期(如Lets Encrypt证书90天有效期) 定期更新JVM信任库cacerts,确保包含最新根证书。 2.协议与加密套件 强制使用TLSv1.2,禁用弱算法(如SSLv3,TLSv1.0) SSLContext sslContext SSLContext.getInstance(TLSv1.3); 3.异常处理 捕获SSLHandshakeExceptioni并记录详细日志快速定位证书问题 4.性能开销 复用CloseableHttpClient实例减少SSL握手开销 为什么开发环境不能共用生产的根证书 1.安全漏洞放大 开发环境常使用自签名证书若将其导入生产信任库攻击者可通过伪造相同域名的自签名证书劫持通信 生产根证书被用于开发环境时测试证书的泄露可能危及生产系统信任链 2.证书管理混乱 开发证书频繁变更测试需快速迭代证书常重置或替换若共用会导致生产信任库频繁更新引发服务中断 3.验证策略冲突 开发环境往往需跳过严格验证如 NoopHostnameVerifier而生产环境必须启用完整验证域名匹配、证书链校验 共用配置会强制生产环境降低安全标准或让开发环境无法调试 4.合规与审计风险 行业标准如 PCI DSS要求生产环境证书必须由公共 CA 签发并独立管理共用会导致审计失败
http://www.pierceye.com/news/586337/

相关文章:

  • 怎么用vps做网站论坛网站建设视频
  • 广州网站制作实力乐云seowordpress 评论模块
  • 永久免费制作网站木门行业做网站有什么好处
  • 怎么区分模板网站wordpress菜单怎么建
  • 网站开发最新效果企业手机网站建
  • 网站群管理系统哪个好wordpress制作会员功能
  • 做套现网站网站的访问量
  • 做网站网页需要学些什么做网站学的什么专业
  • 建设银行的官方网站纪念币公司宣传页设计印刷
  • 网站左侧图片悬浮代码常州工厂网站建设
  • 智慧团建网站怎么转团关系app制作开发小程序制作开发
  • 誉字号网站wordpress 展示模板下载
  • 网站不接入备案成都市建设工程质量协会网站
  • 企业网站html网站开发济南招聘
  • 网站html优化方法音乐网站开发参考文献
  • 网站建设及推广方案ppt模板微信小程序开发工具下载哪个版本
  • 固安县城乡和住房建设局网站科技公司手机端网站
  • 寿光网站建设思科企业网络拓扑图
  • 中国建设银行河南省分行网站建筑人才服务中心官网
  • 响应式app网站模板单页淘宝客网站2014年行吗
  • 西安网站推广优化高端定制网站开发设计建站流程
  • m版网站开发公司如何做网络推广营销
  • 济宁商城网站开发设计网址源码在线查看
  • 网站建设公司介绍百度电脑怎么用wordpress
  • 宛城区网站建设广东seo推广方案
  • 北京建网站定制价格网站风格总结
  • 如何建设一个购物网站wordpress 优酷插件
  • 你们网站做301网站开发规模和工作量的计算
  • 班级网站建设甘肃住房和城乡建设厅网站
  • 网站建设哪家性价比高住房和城乡建设部网站办事大厅里边