Linux利用Apache搭建 ipa安装服务

581 阅读3分钟

本篇旨在记录在Linux上用Apache搭建ipa分发服务的过程。

由于使用系统和Apache版本的差异,如遇用到的命令行和Apache相关配置路径和文中不一致的情况,请自行查找适用的命令行和配置路径。

安装Apache

首先在终端中输入 httpd -v 看下是否已经安装Apache,如果已经安装,则会展示相应的版本号。 若没安装则 需要执行下边命令安装apache。

sudo yum install httpd

安装之后的目录跟apache的版本相关。 下边以我这个版本为例,安装目录为下

cd /etc/httpd/

SSL自签名证书的生成

如果已有证书颁发机构签发的证书,则可跳过此步骤。

1.安装mod_sslopenssl软件包

mod_ssl是Apache的SSL/TLS模块,而openssl是一个强大的SSL/TLS加密工具。

sudo yum install mod_ssl openssl

2.生成自签名证书和私钥

新建一个文件夹用来存放证书和私钥

sudo mkdir -p /etc/httpd/tls/certs

使用OpenSSL生成一个自签名证书和私钥。这通常包括生成RSA私钥和创建自签名证书两个步骤。

生成私钥

sudo openssl genrsa -out /etc/httpd/tls/certs/server.key 2048

生成公钥

sudo openssl req -x509 -new -nodes -key /etc/httpd/tls/certs/server.key -sha256 -days 365 -out /etc/httpd/tls/certs/server.crt

这个命令将使用之前生成的私钥来创建一个自签名证书,有效期为365天,-sha256参数指定使用SHA-256哈希算法来签名证书。

创建证书时,OpenSSL会提示你输入一些信息。注意:Common Name,需要填写我们的服务器域名或ip地址。

配置Apache以使用SSL

现在,我们需要配置Apache以使用SSL,并指定之前生成的证书和私钥的路径。

我们需要配置一个虚拟主机来监听HTTPS请求,并指定证书和私钥的路径。打开Apache的配置文件(如/etc/httpd/conf.d/ssl.conf),并找到<VirtualHost *:443>部分。在该部分中,添加或修改以下指令:

<VirtualHost *:443>
    ServerName your_domain.com   # 确保将ServerName替换为你的域名
    SSLEngine on
    SSLCertificateFile /etc/httpd/tls/certs/server.crt #上边生成的自签名证书路径
    SSLCertificateKeyFile /etc/httpd/tls/certs/server.key #上边生成的私钥路径

    # 其他配置指令...

</VirtualHost>

重启Apache服务

完成配置后,重启Apache服务以使更改生效:

sudo systemctl restart httpd

最后,可以通过浏览器访问域名并使用HTTPS协议来测试SSL配置是否成功。由于我们使用的是自签名证书,浏览器可能会显示一个警告,指出证书不受信任。因为自签名证书不是由受信任的证书颁发机构签发的。

支持通过itms-service安装ipa包

配置好Apache自签名证书后,要支持通过itms-service安装ipa包,我们需要按照以下详细步骤进行操作:

1.准备ipa包

确保你有要分发的ipa包是使用企业证书打包的。将ipa包文件放置在Apache服务器上的某个目录中,ipa不要求通过HTTPS访问,能通过HTTP访问即可。

2.准备plist文件

创建一个plist文件,plist文件如下代码快,这个文件包含了ipa包的下载链接、应用名称、版本号等信息。 将创建的plist文件放置在Apache服务器上的某个目录中,确保这个目录可以通过HTTPS访问。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>items</key>
        <array>
                <dict>
                        <key>assets</key>
                        <array>
                                <dict>
                                        <key>kind</key>
                                        <string>software-package</string>
                                        <key>url</key>
                                        <string>http://ipa包下载url</string>
                                </dict>
                        </array>
                        <key>metadata</key>
                        <dict>
                                <key>bundle-identifier</key>
                                <string>应用的bundleId</string>
                                <key>bundle-version</key>
                                <string>应用的版本号(需和ipa一致)</string>
                                <key>kind</key>
                                <string>software</string>
                                <key>title</key>
                                <string>应用的名称</string>
                        </dict>
                </dict>
        </array>
</dict>
</plist>

3.创建HTML页面

在HTML页面中,使用itms-services协议引用plist文件的URL(该plist的url必须要使用HTTPS能够访问的到)。如下:

<a href="itms-services://?action=download-manifest&url=https://plist文件url">下载 App</a>

将创建好的html放至Apache服务器上的某个目录,确保能正常访问,测试是否能正常安装ipa包。