Ø 问题回顾:用户如果没有选择证书,或者用户没有选定证书,会直接跳转到失败页面,还在思考如何以及在哪里怎样判断用户输入为空。
Ø 问题解决方案:将clientAuth选项该为want。即server.xml配置为:
clientAuth="want" sslProtocol="TLS".具体见附件server.xml。
Ø 问题分析:clientAuth选项有三个值:
① true: 浏览器客户端必须将自己的证书发给服务器认证,如果认证不通过,拒绝显示页面给用户;
② want:请求浏览器客户端将自己的证书发送给服务器认证,如果用户未提交,不失败。允许用户访问系统。wanted就是取消也能保持连接,但是会抛出403错误。服务器可以根据403错误重定向到另一个页面,凡是和证书有关的都叫403错误 ,查阅403错误的详细解释,有些是证书不受信任引起的,有些是证书已经失效引起的,有很多种子错误,必须给用户明确的提示信息
③ false: 不要求浏览器客户端将自己的证书发给服务器认证。
详见:http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto
群交流记录。