赞
踩
首先从一个常见的错误说起。
当使用mvn
打包时,会报错:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target -> [Help 1]
问题原因是没有导入中心仓域名的证书,ssl
证书校验不通过,就会报错误。
此时有两种方式处理:
ssl
证书,见文档;ssl
证书,见下文;示例:
mvn -X clean install -Dmaven.resolver.transport=wagon -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true -Dmaven.wagon.http.ssl.ignore.validity.dates=true
参数解析:
-Dmaven.wagon.http.ssl.insecure=true
:启用对ssl
验证的宽松检查。
-Dmaven.wagon.http.ssl.allowall=true
:允许使用服务的带hostname
的X.509
格式的证书。如果讲参数改为false,那么就会使用长默认的浏览器证书检查。
-Dmaven.wagon.http.ssl.ignore.validity.dates=true
:忽略整数中日期的检查。
Dmaven.resolver.transport=wagon
:在Maven3.9.0或者更高的版本中,默认的http调用已经切换到了Apache HttpClient 4
。需要切换成旧的wagon
组件,否则前面的三个参数不会生效。
参考:
[1] Guide to Remote repository access through authenticated HTTPS
[2] Maven Wagon HTTP
idea配置maven默认不进行https校验
idea配置maven https忽略ssl:
Build,Execution.Deployment
--> Build Tools --> Maven --> Importing : VM options for importer 增加1中忽略ssl校验的实例;Build,Execution.Deployment
--> Build Tools --> Maven --> Runner: VM Options 增加1中忽略ssl校验的实例;maven Runner
是在执行goals
时自动添加的。
maven Importing
时idea引入依赖时的操作,此时并没有执行goals
。
每个项目需要单独配置。
参考:
[1] idea配置文档
当前TLS为主流
超文本传输安全协议(英语:HyperText Transfer Protocol Secure,缩写:HTTPS;常称为HTTP over TLS、HTTP over SSL或HTTP Secure)是一种通过计算机网络进行安全通信的传输协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。HTTPS开发的主要目的,是提供对网站服务器的身份认证,保护交换资料的隐私与完整性。这个协议由网景公司(Netscape)在1994年首次提出,随后扩展到互联网上。
历史上,HTTPS连接经常用于万维网上的交易支付和企业信息系统中敏感信息的传输。在2000年代末至2010年代初,HTTPS开始广泛使用,以确保各类型的网页真实,保护账户和保持用户通信,身份和网络浏览的私密性。
另外,还有一种安全超文本传输协议(S-HTTP)的HTTP安全传输实现,但是HTTPS的广泛应用而成为事实上的HTTP安全传输实现,S-HTTP并没有得到广泛支持。
网景在1994年创建了HTTPS,并应用在网景导航者浏览器中。 最初,HTTPS是与SSL一起使用的;在SSL逐渐演变到TLS时,HTTPS也由在2000年五月公布的RFC 2818正式确定下来。
特点:
https://
开头,默认端口443,安全连接;
http
协议以http://
开头,默认端口80,不安全连接,可以通过监听喝中间人攻击手段窃取敏感信息;局限:
参考:
[1] HTTPS WIKI
[2] SNI WIKI
服务器名称指示(英语:Server Name Indication,缩写:SNI)是TLS的一个扩展协议,在该协议下,在握手过程开始时客户端告诉它正在连接的服务器要连接的主机名称。这允许服务器在相同的IP地址和TCP端口号上呈现多个证书,并且因此允许在相同的IP地址上提供多个安全(HTTPS)网站(或其他任何基于TLS的服务),而不需要所有这些站点使用相同的证书。它与HTTP/1.1基于名称的虚拟主机的概念相同,但是用于HTTPS。
为了使SNI协议起作用,绝大多数访问者必须使用实现它的Web浏览器。使用未实现SNI浏览器的用户将被提供默认证书,因此很可能会收到证书警告。
传输层安全性协议(英语:Transport Layer Security,缩写:TLS)前身称为安全套接层(英语:Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。
参考:
[1] TLS WIKI
X.509是密码学里公钥证书的格式标准。X.509证书已应用在包括TLS/SSL在内的众多网络协议里,同时它也用在很多非在线应用场景里,比如电子签名服务。X.509证书里含有公钥、身份信息(比如网络主机名,组织的名称或个体名称等)和签名信息(可以是证书签发机构CA的签名,也可以是自签名)。
X.509还附带了证书吊销列表和用于从最终对证书进行签名的证书签发机构直到最终可信点为止的证书合法性验证算法。X.509是ITU-T标准化部门基于他们之前的ASN.1定义的一套证书标准。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。