![Thoughtworks Go 服务器和 SSL](https://linux22.com/image/547281/Thoughtworks%20Go%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%92%8C%20SSL.png)
如何更改 Go 服务器使用的 SSL 证书?证书中的域与我们实际用于访问服务器的域不匹配。因此,即使将证书添加到本地存储后,我们仍然会遇到证书问题。
答案1
针对此问题有一个建议的解决方法,如下所述: http://sachinsudheendra.github.io/2014/03/08/using-go-cd-with-custom-certificates.html
还没有尝试过,但很快就会尝试,所以当我尝试过后会在这里发布结果。
编辑:我今天尝试了一下并确认它运行良好。
使用 OpenSSL 64 位测试http://slproweb.com/download/Win64OpenSSL-1_0_0l.exe
重现步骤(在 Windows Server 2012 R2 上使用 GO 版本 13.4):
(假设您已经为想要使用的名称创建了 DNS 条目,例如 mycdserver.mycompany.com)
(这些步骤可以在任何安装了 OpenSSL 的机器上执行)
- 使用内部证书颁发机构或从具有与 DNS 条目匹配的 CN 的公共证书颁发机构获取有效的 X509 SSL 证书,例如 mycdserver.mycompany.com
- 将证书导入 Windows 证书存储区
- 使用证书 MMC 管理单元,将证书导出为 .pfx 文件,并指定密码 serverKeystorepa55w0rd
使用以下命令从 .pfx 源文件导出密钥文件:
openssl pkcs12 -in 我的证书路径.pfx -nocerts -out 我的证书路径.key
使用以下命令从 .pfx 源文件导出 crt 文件:
openssl.exe pkcs12 -in mycertificatepath.pfx -clcerts -nokeys -out mycertificatepath.crt
使用以下命令将密钥文件和crt文件转换为pkcs12文件:
openssl pkcs12 -inkey mycertificatepath.key -in mycertificatepath.crt -export -out mycertificatepath.pkcs12
(这些步骤应在服务器上执行)
- 在服务器上,以管理员身份打开命令提示符
- 导航到安装 Java 运行时环境二进制文件的目录。默认路径为 C:\Program Files (x86)\Go Server\jre\bin
使用以下命令,使用 bin 目录中的 KeyTool 可执行文件将前面步骤中生成的 PKCS12 文件导入到密钥库文件中:
keytool -importkeystore -srckeystore mycertificatepath.pkcs12 -srcstoretype PKCS12 -destkeystore keystore -srcalias 1 -destalias cruise
使用以下命令停止 Go Server 服务:
net stop“转到服务器”
使用以下命令启动Go Server服务:
网络启动“Go 服务器”
验证服务是否已正确启动,并尝试通过 https 导航到与您的证书相对应的 URL,例如 mycdserver.mycompany.com
您可能需要先关闭浏览器,但重新打开后您应该会通过 HTTPS 看到具有有效证书的 GO 服务器(假设您的客户端设置为信任颁发证书的证书颁发机构!)
如果出现任何问题,GO Server 服务将停止,详细信息将记录在文件“C:\Program Files (x86)\Go Server\go-server-wrapper.log”中
希望有所帮助。