Tomcat / OpenSSL(以及Android上的Chrome):如何禁用客户端证书请求?

时间:2013-11-15 01:47:26

标签: google-chrome tomcat ssl openssl

背景:

我正在处理部署在Tomcat上的Grails应用程序。整个站点使用HTTPS(委托给带有APR本机库的OpenSSL)。当我使用Chrome从Android手机访问该网站时,我收到以下提示以获取客户端证书(这是一个主要的可用性问题)。通过查看tcpdump,看起来OpenSSL确实要求证书。

我们不需要也不需要客户端证书身份验证(请注意,该站点确实需要对非公开内容进行常规用户/密码身份验证)。由于未知原因,此提示会显示在Android上的Chrome上,但不会显示在其他浏览器上(所有桌面浏览器,iPad上的Safari和其他浏览器)。

我读到了OpenSSL支持的SSL_VERIFY_NONE选项(这里似乎是适用的选项),但是当Tomcat在幕后调用OpenSSL时如何配置它?在这种情况下,既不能使用该选项(以编程方式有效),也不能使用-verify <depth> option(对OpenSSL客户端有效)。

TL; DR:如何配置Tomcat和/或OpenSSL以避免向客户端浏览器询问客户端证书?无论我们做什么,我们必须在服务器端,这是一个公共互联网站点。

谢谢。

certificate prompt

SSL dump

2 个答案:

答案 0 :(得分:3)

您没有说明您正在使用哪个版本的Tomcat,所以我假设您需要将7.0.x添加到server.xml中的HTTPS连接器

SSLVerifyClient="none"

详细信息,所有其他SSL配置选项都在文档中: http://tomcat.apache.org/tomcat-7.0-doc/config/http.html#SSL_Support_-_APR/Native

答案 1 :(得分:-1)

Off topic,但它是Connector元素中的clientAuth属性。