搭建iOS二维码扫描安装OTA服务器

本文介绍了如何在Mac OS X上利用内置的Apache服务搭建Web服务器,并通过OpenSSL自制证书实现HTTPS。详细步骤包括启动Web服务器、生成SSL证书、配置Apache的SSL服务,以及创建用于iOS设备的OTA更新的plist文件和二维码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、Mac搭建Web服务器


Mac OS X中正好自带了Apache服务,所以这里我们只需要简单的在终端中敲击一行命令,就能启动Web服务了。

sudo apachectl start

这时我们在浏览器中输入"http://127.0.0.1/",如果出现It Works!,那么恭喜你Web服务器启动成功。

二、OpenSSL自制证书

开启HTTPS的第一步,就是需要先生成ssl证书。

  • 生成服务器的私钥
    sudo mkdir /private/etc/apache2/ssl cd /private/etc/apache2/sslsudo openssl genrsa -out server.key 1024

  • 生成签署申请(Common Name必须为服务器的ip或域名)
    sudo openssl req -new -key server.key -out server.csr

  • 生成CA私钥
    sudo openssl genrsa  -out ca.key 1024

  • 用CA的私钥产生CA的自签署证书
    sudo openssl req  -new -x509 -days 365 -key ca.key -out ca.crt

  • 创建demoCA

    sudo mkdir demoCA

    cd demoCA

    sudo touch index.txt

  • sudo touch serial

  • open .

  • demoCA里面创建文件index.txt和serial,serial内容为01,index.txt为空,以及文件夹newcerts

  • sudo mkdir newcerts

  • cd ../..

  • sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key

这样我们就生成了server.crt,server.key,ca.crt文件。将server.crt,server.key配置到服务器上,我们存放的位置是"/private/etc/apache2/ssl/server.crt","/private/etc/apache2/ssl/server.key"ca.crt放到文件根目录中。

配置Apache的SSL服务

仍然是编辑/private/etc/apache2/httpd.conf这个文件,去掉下面三行前面的 '#'

LoadModule ssl_module libexec/apache2/mod_ssl.so
Include /private/etc/apache2/extra/httpd-ssl.conf
Include /private/etc/apache2/extra/httpd-vhosts.conf
LoadModule socache_shmcb_module libexec/apache2/mod_socache_shmcb.so

编辑/private/etc/apache2/extra/httpd-ssl.conf这个文件,修改

SSLCertificateFile "/private/etc/apache2/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/server.key"

SSLCertificateFile "/private/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/server.key"

编辑/private/etc/apache2/extra/httpd-vhosts.conf这个文件,替换里面内容为:

<VirtualHost *:443> 
    SSLEngine on 
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /private/etc/apache2/ssl/server.crt
    SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
    ServerName 192.168.10.193 
    DocumentRoot "/自己定义的路径/"
</VirtualHost>

检查配置,如果有问题按照提示开启相应服务即可。

sudo apachectl configtest


没问题后,重启服务

sudo apachectl restart


这样就可以用https访问我们的本地服务器了。

https://xxx.xxx.xxx

生成plist文件及链接的二维码:

苹果允许用itms-services协议来直接在iphone/ipad上安装应用程序,我们可以直接生成该协议需要的相关文件,这样产品经理和测试同学都可以直接在设备上安装新版的应用了。相关的参考资料可以见:这里和 这里

链接转二维码脚本:
__author__ = ['chaojiang.gcj@alibaba-inc.com']

import qrcode
from PIL import Image
import os, sys


def gen_qrcode(string, path, logo=""):
    """
    生成中间带logo的二维码
    需要安装qrcode, PIL库

    :param string: 二维码字符串
    :param path: 生成的二维码保存路径
    :param logo: logo文件路径
    :return:
    """
    qr = qrcode.QRCode(
        version=2,
        error_correction=qrcode.constants.ERROR_CORRECT_H,
        box_size=8,
        border=1
    )
    qr.add_data(string)
    qr.make(fit=True)

    img = qr.make_image()
    img = img.convert("RGBA")

    if logo and os.path.exists(logo):
        icon = Image.open(logo)
        img_w, img_h = img.size
        factor = 4
        size_w = int(img_w / factor)
        size_h = int(img_h / factor)

        icon_w, icon_h = icon.size
        if icon_w > size_w:
            icon_w = size_w
        if icon_h > size_h:
            icon_h = size_h
        icon = icon.resize((icon_w, icon_h), Image.ANTIALIAS)

        w = int((img_w - icon_w) / 2)
        h = int((img_h - icon_h) / 2)
        icon = icon.convert("RGBA")
        img.paste(icon, (w, h), icon)
    img.save(path)

if __name__ == "__main__":
    if len(sys.argv) > 2:
        urlname = sys.argv[1]
        qrpngpath = sys.argv[2]
        gen_qrcode(urlname, qrpngpath, "logo.png")

扫描结果:


                                     

参考资料:
还没写完,待续
http://www.jianshu.com/p/35ca63ec0d8e


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值