背景:
我正在开发一个部署在 Tomcat 上的 Grails 应用程序。整个站点使用 HTTPS(使用 APR 本地库委托给 OpenSSL)。当我使用 Chrome 从 Android 手机访问该站点时,我收到以下提示,要求提供客户端证书(这是一个主要的可用性问题)。通过查看 tcpdump,看来 OpenSSL 确实在请求证书。
我们不需要也不想要客户端证书身份验证(请注意,该站点确实需要对非公开内容进行常规用户/密码身份验证)。由于未知原因,此提示出现在 Android 上的 Chrome 上,但不出现在其他浏览器(所有桌面浏览器、iPad 上的 Safari 和其他浏览器)上。
我阅读了 OpenSSL 支持的SSL_VERIFY_NONE选项(这似乎是适用的选项),但是当 Tomcat 在幕后调用 OpenSSL 时如何配置它?在这种情况下,既不能使用该选项(以编程方式有效)也不能使用该-verify <depth>
选项(对 OpenSSL 客户端有效)。
TL;DR:如何配置 Tomcat 和/或 OpenSSL 以避免向客户端浏览器询问客户端证书?无论我们做什么,我们都必须在服务器端,这是一个公共互联网站点。
谢谢你。