【发布时间】:2018-03-06 19:06:46
【问题描述】:
Xcode 9 附带的 Xcode Server 现在会自动生成 SSL 证书,用于服务器和客户端之间的通信。它在与 Xcode Server REST API 通信时也使用此证书。有没有办法指定或替换自动生成的密钥并使用来自受信任的第三方(如 LetsEncrypt)的证书?
apache配置文件位于
/Library/Developer/XcodeServer/Configuration/httpd_os_xcs.conf
包含以下信息:
Listen 443
<VirtualHost *:443>
# Xcode Server uses its own self-signed certificates
# only if no other SSL configurations for Apache have been found
<IfModule !ssl_module>
LoadModule ssl_module libexec/apache2/mod_ssl.so
SSLEngine on
SSLCertificateFile /Library/Developer/XcodeServer/Certificates/apache.crt
SSLCertificateKeyFile /Library/Developer/XcodeServer/Certificates/apache.key
</IfModule>
[...]
<IfModule mod_proxy.c>
SSLProxyEngine On
SSLProxyCheckPeerCN Off
ProxyPass /xcode/internal/api https://127.0.0.1:20343/api retry=0 timeout=30
ProxyPassReverse /xcode/internal/api https://127.0.0.1:20343/api
ProxyPass /xcode/internal/socket.io https://127.0.0.1:20343/socket.io retry=0 timeout=30
ProxyPassReverse /xcode/internal/socket.io https://127.0.0.1:20343/socket.io
</IfModule>
[...]
</VirtualHost>
我相信证书也是 apache.keychain 文件的一部分,位于
/Library/Developer/XcodeServer/Keychains/apache.keychain
但我无法验证。
每次在 Xcode 中启动 Xcode Server 服务时,apache.{crt/key} 文件以及 httpd_os_xcs.conf 文件都会被覆盖,因此简单的替换/修改这些文件似乎不是一个选项。
我能看到的唯一方法是按照 http_os_xcs.conf 文件中的建议实现一些其他 SSL 配置,但我似乎也无法让它工作。
非常感谢任何建议或解决方案。
【问题讨论】:
-
在进一步测试中,我发现当前系统可能永远不会允许此功能。我已经向苹果提交了一份关于类似问题的错误报告 (openradar.me/36835365)。
-
你在 Xcode 9.3 中看到过任何变化吗?我也在尝试设置它,但也没有运气
-
@SerenadeX 不幸的是,Xcode 9.3 没有任何变化。我猜想在不久的将来可能不会支持使用自定义证书。我已经不再尝试使用此配置。您具体想通过设置完成什么,也许有一个我可以提供帮助的解决方法。
-
在我的工作中,他们对网络非常挑剔。我们有一些 Mac Mini 想要设置它,然后我们的 QA 团队可以下载构建。但是,如果我们尝试使用自签名证书去那里,那么它会警告我们该站点的不安全性。如果我们不在 iOS 设备上,那么我们根本无法访问 Web 服务器(可能是因为我们的网络)
-
我知道有两种方法可以解决这个问题。 1) 让您的 QA 团队使用 Xcode 连接到服务器并从集成结果中下载构建。 (我认为这是苹果可能会让你采取的方向)。 2) 使用 Xcode Server API 为您的 QA 团队构建自定义解决方案,以查看和下载构建。
标签: xcode apache ssl xcode-server