如何在 Selenium
SSL 证书 Selenium
SSL(安全套接字层)是一种标准安全协议,用于在服务器和客户端(即浏览器)之间建立安全连接。
SSL(安全套接字层)证书使用强加密标准或数字签名确保在服务器和客户端应用程序之间安全地传输数据。必须安装 SSL 证书或代码签名证书。
SSL 证书的好处
使用 SSL 证书有很多好处,例如:
- 可以提高用户和客户的信任,从而快速促进业务增长
- 这些证书有助于保护在线交易和客户敏感信息(如信用卡/借记卡数据等)的安全。
- 签名证书往往会获得最大的下载量和用户的好评。
SSL 保护的网站以 https://如果连接安全建立,您将看到锁定图标或绿色地址栏。
例如,如果你想通过网上银行进行一些交易,或者想购买 联络号码 通过 Flipkart 等电子商务网站打电话或 Amazon.
Web 浏览器和服务器之间发生了什么
- 浏览器尝试连接使用 SSL 保护的网站。浏览器请求网络服务器确认自己的身份
- 服务器向浏览器发送其 SSL 证书的副本
- 浏览器验证 SSL 证书是否真实。如果是,它会向服务器发送一条消息
- 服务器发回数字签名的确认信息以启动 SSL 加密会话
- 加密数据在服务器和浏览器之间共享
在这样做时,您需要传输敏感信息,例如信用卡号或登录凭据,并且必须安全传输,以免被黑客入侵或拦截。
举个例子
- 类型 https://netbanking.hdfcbank.com/netbanking/ .
- 按Enter键。
- 您将在浏览器中看到一个绿色的地址栏,如下所示:-
SSL 证书如何创建安全连接
- 浏览器 向服务器发送 HTTPS 请求。
- 现在服务器必须向浏览器提供一些标识来证明它是可信的。这可以通过将其 SSL 证书的副本发送到浏览器来完成。
- 每个浏览器都有自己的受信任 CA 列表。 浏览器根据其受信任的 CA 列表检查证书根,确保证书未过期、未被撤销,并且通用名称对于其所连接的网站有效。
- 如果浏览器信任该证书,则会在服务器和浏览器之间创建加密会话。
- 服务器和浏览器可以发送加密消息
SSL证书的类型
浏览器和服务器使用SSL证书机制才能建立安全的连接。这个连接涉及三种类型的证书的验证。
- Root
- 中级
- 服务器证书
获取 SSL 证书的流程
获取 SSL 证书的过程包括以下步骤:-
- 首先,您必须创建 CSR(创建证书签名请求)请求。
- CSR 请求创建 CSR 数据文件,该文件被发送给称为 CA(证书颁发机构)的 SSL 证书颁发机构。
- CA 使用 CSR 数据文件为您的服务器创建 SSL 证书。
- 收到 SSL 证书后,您必须将其安装在您的服务器上。
- 还需要安装一个中间证书,将您的 SSL 证书与 CA 的根证书绑定在一起。
下图代表所有三个证书- 根证书、中间证书和服务器证书。
如何验证 SSL 证书
SSL 通过 Web 服务器计算机和 Web 服务器浏览器上存在的程序和加密/解密例程组合来工作。
SSL 证书主要包含以下信息。
- 主题是网站所有者的身份。
- 有效性信息——一个公钥和一个私钥。
私钥和公钥是两个唯一相关的加密密钥(数字)。用公钥加密的内容只能用私钥解密。
当服务器和客户端之间因证书而无法建立安全连接时,将出现以下SSL证书错误。
SSL 证书错误的类型
假设您在浏览器中输入一些 https 请求,并收到一条消息,例如“此连接不受信任”或“该站点的安全证书不受信任”,具体取决于您使用的浏览器。那么此类错误就是 SSL 证书错误。
现在,如果浏览器无法使用请求的证书建立安全连接,则浏览器将抛出如下所示的“不受信任的连接”异常,并要求用户采取适当的措施。
你可能在不同浏览器中看到的证书错误类型可能类似于以下内容
- 大火Fox - 当前连接不可信任
- Google Chrome -此网站的安全性不受信任
- 互联网浏览器 (IE) – 该网站提供的安全证书未受到受信任的证书颁发机构 (CA) 的信任
如何使用处理 SSL 证书错误 Selenium 网络驱动程序
假设我们编写了一些测试脚本,并且在执行脚本时,我们遇到了上述“不受信任的连接”的情况,那么我们如何纯粹通过自动化来处理异常。
在这种情况下,我们必须调整我们的脚本,以便它能够自行处理 SSL 异常。
脚本需要根据我们使用的浏览器实例类型进行修改。当需要时,这些功能就会出现。
所需功能用于配置驱动程序实例 Selenium Webdriver。通过所需功能,可以配置所有驱动程序实例,如 ChromeDriver, Firefox驱动程序和 Internet Explorer。
到目前为止,我们还没有创建上述场景的具体 URL,但我提供了我们可以在 Selenium 处理上述情况“不受信任的连接”的脚本。
SSL 证书错误处理 Firefox
处理 SSL 证书错误 Firefox,我们需要使用所需的能力 Selenium Webdriver 并按照以下步骤操作。
步骤1) 首先,我们需要创建一个新的 Firefox 配置文件,例如“我的简历“。您可以参考谷歌了解“如何创建” Firefox 配置文件。它简单又容易。
步骤2) 现在按如下方式访问脚本中的 myProfile 并创建 Firefox配置文件对象。
ProfilesIni prof = new ProfilesIni() FirefoxProfile ffProfile= prof.getProfile ("myProfile")
步骤3) 现在我们需要设置“设置接受不受信任的证书“和”设置假设不受信任的证书颁发者” 属性在火 Fox 个人资料。
ffProfile.setAcceptUntrustedCertificates(true) ffProfile.setAssumeUntrustedCertificateIssuer(false)
步骤4) 现在使用火Fox 火中的轮廓Fox 驱动程序对象。
WebDriver driver = new FirefoxDriver (ffProfile)
备注:“setAcceptUntrustedCertificates”和“setAssumeUntrustedCertificateIssuer“ 具有处理 Web 浏览器中证书错误的功能。
Chrome 中的 SSL 证书错误处理
为了处理 Chrome 中的 SSL 错误,我们需要使用所需的功能 Selenium Webdriver。以下代码将有助于接受 Chrome 中的所有 SSL 证书,并且用户使用此代码将不会收到任何与 SSL 证书相关的错误。
我们需要创建 DesiredCapabilities 类的实例,如下所示:-
DesiredCapabilities handlSSLErr = DesiredCapabilities.chrome () handlSSLErr.setCapability (CapabilityType.ACCEPT_SSL_CERTS, true) WebDriver driver = new ChromeDriver (handlSSLErr);
IE 中的 SSL 证书错误处理
与在 Chrome 浏览器中处理 SSL 证书不同, Firefox,在 IE 中,您可能必须使用 javascript 来处理它。
要在 IE 中处理 SSL 证书,您可以通过两种方式处理这种情况,
- 在此,您将点击链接“继续访问此网站(不推荐)”。 下面我们将看到如何处理 IE 中的 SSL 错误。
在 IE 浏览器中观察 SSL 证书错误,您会发现“继续访问此网站(不推荐)”链接。此链接的 ID 为“覆盖链接”。您可以使用 F12 以 HTML 模式查看该 ID。
使用 driver.navigate() 方法单击链接 JavaScript 如下 :-
driver.navigate ().to ("javascript:document.getElementById('overridelink').click()");
- 第二种方法与 chrome SSL 处理代码非常相似
DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); System.setProperty("webdriver.ie.driver","IEDriverServer.exe"); WebDriver driver = new InternetExplorerDriver(capabilities);
上述代码将有助于处理 IE 中的 SSL 证书错误。
总结
- SSL(安全套接字层)是用于在服务器和客户端之间建立安全连接的标准安全协议
- 浏览器和服务器使用SSL证书机制才能建立安全的连接。
- SSL 通过 Web 服务器计算机和 Web 服务器浏览器上存在的程序和加密/解密例程组合来工作。
- 当服务器和客户端之间因证书而无法建立安全连接时,将发生 SSL 证书错误
- 需要调整我们的脚本,使其能够自行处理 SSL 异常/错误 Selenium 网络驱动程序。