- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在为我的 Artifactory-repo 使用来自 startssl.com 的免费 SSL 证书。它在我的浏览器中都是绿色的,而且很漂亮,但当然不是来自 Java。所以我用这个方便的脚本安装了 cacerts:
http://www.ailis.de/~k/uploads/scripts/import-startssl
但我仍然得到:
Server access Error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException
错误。 JAVA_HOME 设置正确。非常感谢任何建议!
更多信息:
来自 SBT 0.12.2 的 Ivy(使用 pualp 的脚本 https://github.com/paulp/sbt-extras)在证书上呕吐:
[info] Resolving net.liftmodules#omniauth_2.10;2.5-SNAPSHOT-0.7-SNAPSHOT ...
[error] Server access Error: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target url=https://repo.woodenstake.se/all/net/liftmodules/omniauth_2.10/2.5-SNAPSHOT-0.7-SNAPSHOT/maven-metadata.xml
--更新:
问题似乎与 Java 本身无关,完全不同。从浏览器访问该页面会产生一个绿色证书,我可以看到它从 StartSSL 签名的信息。但即使是 wget 或 curl 也会窒息并告诉我这是一个自签名证书。似乎根据客户端交付了不同的证书。
存储库位于 https://repo.woodenstake.se/ - 如果您将其粘贴到您的浏览器中,我猜您会获得 StartSSL 证书。但是如果你做 wget https://repo.woodenstake.se/你得到一些旧的自签名证书,我不知道它来自哪里。
-- 更新更新:
所以问题是我正在为几个 *.woodenstake.se 形式的站点提供服务。我觉得可以拥有不同的证书,例如:
server {
listen 443;
server_name site1.woodenstake.se;
client_max_body_size 512m;
ssl on;
ssl_certificate cert1.crt;
ssl_certificate_key cert1.key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://server1;
break;
}
}
}
server {
listen 443;
server_name site2.woodenstake.se;
client_max_body_size 512m;
ssl on;
ssl_certificate cert2.crt;
ssl_certificate_key cert2.key;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
if (!-f $request_filename) {
proxy_pass http://server2;
break;
}
}
}
它在我所有的浏览器中都运行良好。
但是,它不适用于 wget 或 JDK6。
最佳答案
问题完全不同。显然,您不能在同一个 IP 上拥有多个证书,并确保所有客户端都能处理它。我在这台机器上有一些工具,我的 nginx-config 既引用了该站点的 StartSSL 证书,也引用了其他一些站点的自签名 (snakeoil) 证书。
我的 nginx 支持 TLS SNI:
~ $ sudo nginx -V
nginx version: nginx/0.7.65
TLS SNI support enabled
但显然 wget 和 Java 客户端不处理它。不过,我所有的浏览器都可以。
也许可以这样做:
http://library.linode.com/security/ssl-certificates/subject-alternate-names
但我不知道是否可以让 StartSSL 对其进行签名。
更多信息在这里:
http://www.carloscastillo.com.ar/2011/05/multiple-ssl-certificates-on-same-ip.html
在我的 Ubuntu 桌面上进行 Wget 测试:
viktor@hedefalk-i7:~$ wget https://bob.sni.velox.ch/
--2013-03-25 17:07:19-- https://bob.sni.velox.ch/
Resolving bob.sni.velox.ch (bob.sni.velox.ch)... 62.75.148.60
Connecting to bob.sni.velox.ch (bob.sni.velox.ch)|62.75.148.60|:443... connected.
ERROR: no certificate subject alternative name matches
requested host name `bob.sni.velox.ch'.
To connect to bob.sni.velox.ch insecurely, use `--no-check-certificate'
所以我认为我的问题的答案是
您的 Java 版本(或所有版本,但可能适用于 JDK7:http://docs.oracle.com/javase/7/docs/technotes/guides/security/enhancements-7.html)不支持 TLS SNI,因此 nginx 无法确定要提供哪个证书,因为这是在 http 之前协商的。从该人那里用真钱购买通配符证书或哭泣。
关于java - 根据客户端交付不同的 ssl 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15574942/
我已经在 Google 页面速度上测试了我的网站,我发现我需要优化我的 css 文件。但在 Google 文档中,仅针对小型 css 文件进行回复。 这是我测试网站时出现的消息: 优化以下内容的 CS
我优化了以下链接的 CSS 代码。但它仍然给出优化 css 传递的消息。 http://fonts.googleapis.com/css?family=Droid+Sans%7CUbuntu+Cond
我有一个用 Clojure 编写的桌面应用程序,它受 JVM 启动时间的影响很大,非常适合 ClojureScript。它作为 JVM 的 jar 文件提供,ClojureScript/JavaScr
我正在创建一个新服务,为此我有一个包含状态字段的数据库条目 (Mongo),我需要根据当前时间更新该字段,例如,开始时间设置为两点几个小时后,我需要在数据库中将状态从 CREATED -> START
我们构建的网站具有公共(public)(非安全)区域和安全(通过 HTTPS 交付)区域,并且我们使用 jQuery 库。 最近我建议我们使用 Google CDN 进行 jQuery 交付。我的一些
我正在尝试将 Varnish 缓存响应分块...(有可能,对吧?) 我有以下情况: 1-缓存很干净,可以使用(服务 Varnish 重新启动) 2-首次访问www.mywebsite.com/page
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我正在开发一个数据关键型移动应用程序来向服务器发送消息。为了利用 MQTT 的轻量级特性,KEEP_ALIVE_INTERVAL 保持在最大值 > 60 秒。但我想确保数据包无论如何都能送达。目前我使
我的本地通知有问题:如果设备处于关闭状态或更改手机日期,通知将保留排队并与下一个通知一起触发。为什么? 因为需要非常关心通知的日期..如何保证通知的正确传递? 我们应该把删除过期通知的代码放在哪里
在将第一个有效负载作为 mdm: 发送后,我们能够获得状态为空闲的响应。现在我们要发送一个简单的设备锁负载。我们按照完全相同的过程发送有效载荷,但返回的响应是空白的。 我们正在按照以下方式使用证书:1
我在 Resources\Images 目录中有一个包含大量 Assets (图像)的 .NET MAUI 项目,这些 Assets 应部署到 Google Play 商店。这意味着生成的 aab 包
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
我记得有人告诉我 gzip 压缩的内容没有缓存在某些浏览器上? 这是真的? 是否有任何其他原因我不应该使用 htaccess 压缩我的内容(页面、javascript 和 css 文件)? 最佳答案
如果我将 .Net Framework 安装文件与我的应用程序一起包含(安装过程由我们自己的技术人员完成),则无需事先安装任何框架即可安装在干净的 Windows(XP SP2/SP3 或 Vista
我已经成功使用 SAXON HE 9.5.1-5 一段时间了。我们正在对平台中的某些版本的组件进行全面升级,其中包括迁移到 Saxon 9.8.0-8使用该版本代码失败。以下内容位于我们的 Sprin
使用页面速度洞察时,我收到此警报 Eliminate render-blocking JavaScript and CSS in above-the-fold content Your page ha
所以我不幸地将我们创建的这个专有 ActiveX 控件嵌入到网页中,以便它从我们的服务器下载代码并在必要时安装。 我们的 ActiveX 需要许多其他文件,这些文件需要与 activex 控件本身一起
我一直在通过 Google 的网站速度测试器运行我的网站 ( https://developers.google.com/speed/pagespeed/insights/ ) 并尝试解决所有发现的问
Google 建议在 head 中使用非常重要的 CSS inline 和内部的其他 CSS . 这在我脑海中提出了几个问题: 如何在两个文件中确定 CSS 的优先级。该页面的所有内容看起来都很重要
所以我通过 Google 的 PageSpeed Insights 运行我的网站它告诉我可以通过延迟加载非关键资源来改进 CSS 交付。特别是它提到了包含很棒的字体: 我想我可以通过简单地将它放在结
我是一名优秀的程序员,十分优秀!