我的网站在首次建立https连接时请求ssl客户端证书。
浏览器的Javascript API无法控制这一点,后端的Servlet API也没有:再次请求证书的唯一方法是关闭所有浏览器窗口并重新开始*。< / p>
所以我希望我的用户通过任何http页面访问该网站,查看所有链接http,当他们登录时,他们会被重定向到网站的https版本。
谷歌将https称为比http更具权威性,因此他们让我远离它。
当我在http上时,我被告知要使用规范链接,而在使用https时,我会被告知使用规范链接但这并不容易,特别是对于静态内容。
有没有办法在不改变整个代码库的情况下改变它?像谷歌搜索控制台选项或什么?
或许某些tomcat设置或者Valve / servlet过滤器可以阻止服务将https内容提供给Google抓取工具?
* 我找到了解决方案,但它要求我控制DNS记录,以便在请求客户端证书时服务器的主机名可以在每次登录请求时更改(如f63a47c8。 mydomain.com,a234e12b.mydomain.com等)建立一个新的SSL连接,以及一个非常昂贵的CA签名&#34;通配符&#34;验证所有可能的子域的服务器证书(与单个主机(如www.mydomain.com)的证书相比非常昂贵。)