gpt4 book ai didi

xcode - 自定义 Xcode 9 服务器证书

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:56 25 4
gpt4 key购买 nike

Xcode 9 附带的 Xcode Server 现在会自动生成 SSL 证书,用于服务器和客户端之间的通信。它还在与 Xcode Server REST API 通信时使用此证书。有没有办法指定或替换自动生成的 key 并使用来自受信任的第三方(如 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 配置,但我似乎也无法让它发挥作用。

非常感谢任何建议或解决方案。

最佳答案

这对我在 macOS Mojave (10.14) 上有用。

通过服务器应用程序安装证书

  1. 从 App Store(5.8 版)安装“Server”应用
  2. 从服务器应用程序为您的域生成服务器证书请求
  3. 将请求文件发送给证书提供商以获取证书
  4. 从服务器应用程序导入证书并将其设置在“使用安全服务”下拉列表中

这些步骤可以通过其他方式完成,但最初我想使用“有福的”macOS 方式,然后问题就开始了:)

我想直接通过 Apache 系统(为 https://example.com/xcode 页面提供服务)使用此证书,但缺少文档,我唯一找到的是 this migration guide他们谈论 mod_secure_transport 的地方,应该使用它而不是 mod_ssl。本指南假定它已经配置,但 mod_secure_transport 不存在于默认的 Mojave Apache 配置中(位于/etc/apache2 中)。

所以让我们用老式的方式手动完成:

手动准备 Apache 证书文件

  1. 将您的证书文件复制到/etc/apache2/server.crt
  2. 在 Keychain 应用中找到您的证书,然后从那里以 p12 格式导出您的证书私钥。
  3. 将您的私钥转换为 Apache 期望的格式:

    openssl pkcs12 -in exported_private_key.p12 -nodes -out server.key -nocerts
  4. 将server.key复制到/etc/apache2/server.key

手动配置Apache

在/etc/apache2/httpd.conf 中:

  1. 取消注释这些行:

    LoadModule ssl_module libexec/apache2/mod_ssl.so
    ...
    LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so
  2. 找到“IfModule ssl_module”部分并添加:

    SSLCertificateFile "/private/etc/apache2/server.crt"
    SSLCertificateKeyFile "/private/etc/apache2/server.key"
  3. 测试配置:

    sudo apachectl configtest
  4. 重启:

    sudo apachectl restart

如果一切顺利,就准备好了,你可以在https://example.com/xcode观察结果。

关于xcode - 自定义 Xcode 9 服务器证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46411529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com