grails嵌入式服务器功能测试需要具有有效的ssl证书

grails嵌入式服务器功能测试需要具有有效的ssl证书,grails,ssl,functional-testing,embedded-server,Grails,Ssl,Functional Testing,Embedded Server,我一直在网上搜寻如何使用嵌入式服务器+ssl解决grails功能测试的问题,非常感谢您对我遇到的问题的任何帮助 到目前为止,我们使用SeleniumWebDriver 2在Firefox上测试GrailsWebApp取得了良好的成功。我们从Jenkins服务器(有时是本地机器)自动运行功能测试,使用功能测试插件启动和停止我们的应用程序,并结合webdriver插件 这一行: profile.acceptUntrustedCertificates=true 新Firefox实例的配置文件中使用的S

我一直在网上搜寻如何使用嵌入式服务器+ssl解决grails功能测试的问题,非常感谢您对我遇到的问题的任何帮助

到目前为止,我们使用SeleniumWebDriver 2在Firefox上测试GrailsWebApp取得了良好的成功。我们从Jenkins服务器(有时是本地机器)自动运行功能测试,使用功能测试插件启动和停止我们的应用程序,并结合webdriver插件

这一行: profile.acceptUntrustedCertificates=true 新Firefox实例的配置文件中使用的SSL在我们使用Firefox进行测试的过程中,对我们来说非常有效,使浏览器所关心的所有SSL都完全有效

因此,尽管Firefox的设置非常好,但我们仍然需要为IE8运行一组并行测试,但我无法找到webdriver处理IE8的SSL警告/障碍的方法

因为我们在这里纯粹是Mac(开发人员)/Linux(詹金斯等),所以我们在Win7 VirtualBox虚拟机中运行IE8。然后从Win7VM实例运行独立WebDriver服务器。在测试到达我们的webapp的SSL部分之前,它工作得很好,在这一点上,我得到了iessl警告页面,测试被破坏了

我们买了一个便宜的godaddy SSL证书,正是出于这个原因,希望让IE高兴,但我一直无法找到一种方法,使我们的证书显示为有效的CA签名证书,而不仅仅是自签名证书。例如,当我在Chrome中检查证书时,它确实显示我的证书,但也显示它是自签名的。它的CN是按照testbox.example.com的思路编写的,我在/etc/hosts中添加了一行:127.0.0.1 testbox.example.com

我使用JavaKeyTool生成CSR,然后根据godaddy站点上的说明导入生成的签名证书、中间证书、交叉证书等。我看到grails需要它的密钥库来保留密码123456,我已经这样做了

我已经成功地为常规服务器进行了SSL配置,例如独立的glassfish和tomcat,但我在这个问题上遇到了麻烦

谢谢!
Jamie

要进行测试,只需将您的证书安装到IE 8中即可


请参见

我知道这不是一个非常干净的解决方案,但out IE8显示了一个警告,表明证书有问题。此警告本身是一个有效的HTML页面,您可以单击类似“忽略此,显示页面”的链接

一次会话只需执行一次。因此,我们在测试中有一个简单的步骤,在调用第一页后检查是否收到错误消息。如果是的话,我们会自动点击链接,其余的都可以正常工作

再说一遍:我知道这不是一个干净的解决方案。但它对我们有用。而且必须以正确的方式配置java密钥存储库可能会很痛苦。:-)

另一个方法:

您提到IE设置中的更改不起作用,因为WebDriver创建了一个新的IE实例

IE在windows注册表中存储了很多设置。所以“IE注册证书”可能是一个很好的开始,谷歌你的问题。以下是一个有希望的结果:


由于您在虚拟机中运行IE,我想可以禁用此vm上的IE安全功能。否则,我不得不承认,默认情况下禁用这样的安全功能不是一个好主意。

是的,这似乎不适用于Webdriver,尽管b/c它会为broswer启动的每次调用生成一个新的浏览器配置文件。你知道一种特别的方法使它与WebDriver一起工作吗?你在安装证书后重新启动IE了吗?可能是IE仅在关闭实例时才保留此设置。以后浏览器的每个新实例都应该知道证书。可能尝试为本地计算机而不是当前用户安装证书。运行
mmc
,为本地计算机添加证书管理单元,并将证书作为根授权安装。(免责声明:我尚未对此进行测试)您是否能够让WebDriver(Selenium 2)单击此链接?据我所知,这是不可能的,因为我永远无法让WebDriver做到这一点。我使用了Scriptom wich afaik,它使用了与WebDriver相同的机制(远程控制IE作为COM对象),并且工作正常。如果它不能与WebDriver一起工作,我会感到惊讶。谢谢!看起来它会起作用的。很抱歉,我花了这么长时间才接受,我最近没有时间再讨论这个问题,但我会很快检查出来。