代码审查Collaborator教程:如何配置 HTTPS

翻译|使用教程|编辑:莫成敏|2019-09-20 11:44:36.577|阅读 24 次

概述:基本的 Collaborator 安装将服务器配置为通过标准 HTTP 处理的请求。但是,某些组织要求所有网络应用程序都使用传输层安全性(TLS)或安全套接字层(SSL)进行保护。Collaborator 支持 TLS 上的 HTTP(或 HTTPS),但这需要额外的手动服务器配置。

Collaborator的代码审查可以为开发测试人员和管理者提供帮助,生产出高质量的代码。团队可以用它在一个透明、共同的框架中进行同行代码审查、用户示例和测试计划的编辑。

点击下载Collaborator免费版

基本的 Collaborator 安装将服务器配置为通过标准 HTTP 处理的请求。在许多环境中,这就足够了,因为网络是可信的。但是,某些组织要求所有网络应用程序都使用传输层安全性(TLS)或安全套接字层(SSL)进行保护。Collaborator 支持 TLS 上的 HTTP(或 HTTPS),但这需要额外的手动服务器配置。

需要什么

证书

要对客户端进行身份验证,Collaborator 服务器必须具有用作身份证明的证书。证书有两种形式:证书颁发机构(CA)签名证书和自签名证书。CA 签名证书提供了额外的安全级别,因为它们可以自动验证,不依赖于人工验证。通过向您提供证书,证书颁发机构将保证您的身份。诸如 Web 浏览器和 Java 运行时环境(JRE)之类的软件系统包括可信证书颁发机构的公钥,这些公钥用于验证由受信任 CA 担保的服务器证书。要获取 CA签名证书,请与 IT 部门中的相应人员联系。

自签名证书具有免费且易于生成的优点。自签名证书的缺点是无法自动验证。相反,它们的安全性依赖于用户根据通过另一个理想安全的通道获得的签名来验证证书签名。

密钥库

密钥库是一种用 Java 存储加密密钥和证书的机制。密钥库的持久形式是磁盘上受密码保护的文件。密钥库可能包含密钥条目,这些密钥条目允许具有密钥库访问权限的应用程序向用户或其他服务进行身份验证。密钥库还用于存储受信任的证书条目,这些条目包含受信任的服务的公钥和受信任担保服务的证书颁发机构。

要在 Collaborator 中启用 HTTPS,您需要使用服务器的证书(CA 或自签名)创建密钥库。对于 CA 签名证书——证书颁发机构的链证书。按照以下说明创建一个密钥库,其中包含您将用于保护 Collaborator 的证书类型。

创建 Collaborator  密钥库

在密钥库中创建私钥和证书

首先,您必须使用 Java keytool 命令(位于

keytool -genkeypair -alias tomcat -keyalg RSA -validity 360 -keysize 2048 -keystore /tomcat/conf/collab.ks

系统将提示您回答一系列问题。当系统提示您输入您的姓和名时,请输入您要用于访Collaborator 服务器的主机名和域名。例如:

What is your first and last name?
[Unknown]: collab.acme.com

完成其余提示并为密钥库分配密码后,您已创建私钥和自签名证书。请务必记住您设置的密钥库密码,因为您必须将其包含在服务器配置中。

对于许多组织而言,这足以保证安全性。但是,除非证书未由现有证书颁发机构签名,否则 Web 浏览器和 Collaborator 客户端将请求最终用户进行确认。

如果您希望证书颁发机构签署您的服务器证书,请按照创建证书签名请求中描述的步骤进行操作。

创建证书签名请求

完成上述步骤后,您可以使用以下命令创建证书签名请求:

keytool -certreq -alias tomcat -keystore /tomcat/conf/collab.ks -file tomcat.csr

系统将提示您输入密钥库密码。这应该创建一个名为 tomcat.csr 的文件,您需要将其提供给签名机构。这可能是 Verisign、Thawte、另一个证书供应商或您组织内部的组。一旦他们验证了所提供的信息,签名机构将向您发送证书文件。

导入 CA  签名的证书

如果您使用的是 CA 签名证书,则需要服务器证书和证书颁发机构(或根证书)的链证书。CA 链证书是公开可用的,但获取它们的说明因证书颁发机构而异。要获取 CA 链证书,请要求组织中的 IT 人员负责获取服务的 SSL 证书。获得证书后,使用 Java keytool程序(位于

要导入 CA 链证书:

keytool -importcert -alias root -keystore /tomcat/conf/collab.ks -trustcacerts
-file

要导入服务器证书:

keytool -importcert -alias tomcat -keystore /tomcat/conf/collab.ks -trustcacerts
-file

记住您选择的密钥库密码,因为在配置 Collaborator 服务器时您将需要此密码。

同时导入服务器和链证书

一些流行的签名机构现在提供初级和中级证书。在这些情况下,以下步骤可能比上述步骤更有效。

首先,组装一个包含签名机构提供给您的所有证书(初级证书、中级证书和服务器)的文件:

  • 在 UNIX 系统上,使用以下代码行:

cat primary.cert intermediate.cert tomcat.cert > combined.txt
  • 在 Windows 系统上,在记事本中,将所有提供的证书复制并粘贴到单个文件中,然后将其另存为 combined.txt。之后,运行以下命令:

keytool -importcert -alias tomcat -keystore /tomcat/conf/collab.ks -trustcacerts -file combined.txt

这将同时导入所有三个(或更多)证书,建立正确的信任链。

配置 Collaborator  服务器

配置 Collaborator 服务器的最后一步是指示服务器使用 SSL 并告诉它使用哪些证书。这是通过编辑位于

<Connector protocol="org.apache.coyote.http11.Http11Protocol"
port="8443" enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="100"
scheme="https" secure="true"
SSLEnabled="true" sslEnabledProtocols="TLSv1.2,TLSv1.1,TLSv1"
keystoreFile="conf/collab.ks" keystorePass="<the keystore password>" clientAuth="false" sslProtocol="TLS"/>

在此 XML 片段中,您必须替换密钥库密码。

提示:如果需要在 server.xml 中指定密钥库文件的完整路径,请使用文件协议表示法:

keystoreFile="file:///c:/program%20files/collaborator%20server/tomcat/conf/collab.ks"

重新启动服务器,它将在端口 8443 上通过 SSL 运行。

确保更新服务器设置中的外部 URL,以反映正确的 HTTPS URL,并启用安全身份验证cookie 设置以通过 HTTPS 发送登录 cookie。

对客户的影响

生成服务器密钥后,您可能希望将密钥库及其签名分发给用户,以便他们在询问时验证证书。为此,首先将证书导出到文件:

keytool -exportcert -keystore /tomcat/conf/collab.ks -alias tomcat > collab.cert

然后,打印您需要分发的证书信息——尤其是指纹。为此,请按以下方式运行 keytool:

keytool -printcert -file collab.cert

这将打印如下内容:

Owner: CN=collab.aus.smartbear.com, OU=SmartBear, O=SmartBear, L=Austin, ST=TX, C=US
Issuer: CN=collab.aus.smartbear.com, OU=SmartBear, O=SmartBear, L=Austin, ST=TX, C=US
Serial number: 463251eb
Valid from: Fri Apr 27 14:41:31 CDT 2007 until: Thu Jul 26 14:41:31 CDT 2007
Certificate fingerprints:
MD5: 67:D7:74:5E:72:9D:B2:82:88:3F:33:AA:A0:41:01:F0
SHA1: E2:4A:1F:9B:9A:38:0F:6B:7B:33:12:73:1B:50:76:30:AC:A6:B2:EA

如果用于保护 Collaborator 的证书是来自受信任证书颁发机构的 CA 签名证书,则对用户的影响非常小。他们必须做的唯一事情是使用正确的 HTTPS URL 配置他们的客户端。

如果您使用的是自签名证书或无法自动验证证书,则会要求用户通过将其签名与已发布的服务签名进行比较来验证证书。此确认的确切性质因客户端而异,但过程是相同的:查看服务器提供的证书并确认其签名与发布的签名匹配。

在 Web 浏览器中,证书确认对话框应如下所示:

https-firefox.png

上面的截图来自 Firefox,但其他浏览器用户会看到类似的对话框。用户需要通过将证书的指纹(或签名)与您为服务器分发的签名进行比较来验证证书的指纹(或签名)。

永久接受的证书存储在$ HOME / .smartbear / trustedcertificates 中的本地密钥库中。可以安全删除此文件以删除所有受信任的证书。如果这样做,则用户必须重新授权任何自签名的证书(或由不在 Java 可信密钥库中的 CA 签名)。

如果您希望每个客户端在不提示的情况下自动识别和授权内部 CA,那么一种解决方案是使用一个客户端接受密钥,然后分发生成的 trustedcertificates 文件。

重申一下,Unix 客户端的默认位置是:〜/ .smartbear / trustedcertificates ;对于 Windows客户端:%USERPROFILE%\ .smartbear \ trustedcertificates。

如果您可以将所需文件分发到所有用户计算机,则将该文件分发到这些位置将阻止其余用户看到提示。

与其他客户端不同,Collaborator Visual Studio Extension 无法从 Java 密钥库读取证书。因此,要使用 Collaborator Visual Studio Extension 中的 HTTPS 服务器,用户应手动将服务器证书安装到 Windows 密钥库中。

注意:对于自签名证书,您必须使用与证书颁发机构签名的证书。它可以是任何 CA——甚至是你自己。您还必须在受信任的机构中安装有问题的 CA 证书,因为您无法直接使用自签名证书。

本文内容就是这样了,希望对您有所帮助~您可以下载 Collaborator 试用版尝试一下~

相关文章:

Collaborator教程:什么是单点登录?Collaborator单点登录的几个验证方法

代码审查Collaborator教程:单点登录——通过SAML配置单点登录(上)

代码审查Collaborator教程:单点登录——通过SAML配置单点登录(下)

代码审查Collaborator教程:单点登录——通过Crowd OpenID配置单点登录

代码审查Collaborator教程:单点登录——通过Java Servlet配置单点登录


想要购买Collaborator正版授权,或了解更多产品信息请点击“咨询在线客服”

Zend-Studio-640×220.png




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Collaborator

Collaborator是一款功能全面的代码审查工具。

购物车 在线客服 在线QQ 电话咨询
400-700-1020
反馈
在线客服系统
live chat