MAC搭建ios内测平台

一、启动Apache服务,配置https

1.启动 Apache

Mac OS X 自带了 Apache 服务,我们只需要启动它就可以了
在终端中输入

sudo apachectlstart

然后在浏览器中尝试输入http://127.0.0.1, 如果出现 It Works!那么就是启动成功
站点的默认目录是 /Library/WebServer/Documents/

2.制作 OpenSSL 证书

自签名分为两个步骤,首先生成自己的CA根证书,再用这个根证书去签名我们服务器所使用的证书。
a. 生成自己的根证书
生成自己的密钥对

openssl genrsa -out ca.key 1024

生成证书请求文件,并使刚刚的key来加密CA根证书

openssl req -new -x509 -days 365 -key ca.key -out ca.crt

其中-x509选项表示生成自签名的证书,生成证书会要求填一系列的东西,此时可以任意填写,也可以直接回车,Common Name (e.g. server FQDN or YOUR name) []:,这一项建议填写一个便于识别的名字,比如可以是你的名字或者代号。
完成到这里你就已经生成了自己的根证书了,你也和那些知名CA机构一样,用根证书给别人的证书签名啦。。撒花。。。不过由于你不知名,没有人会认可你的证书,所以你签名的所有证书都是不会被信任的。

b. 生成服务器使用的证书,并用自己的根证书签名
步骤基本同上:
生成一个密钥对

openssl genrsa -out server.key 1024

生成证书请求文件

openssl req -new -key server.key -out server.csr

这里又需要填写之前的那一堆东西,值得注意的是,
Common Name (e.g. server FQDN or YOUR name) []:
这里一定要填写你的https连接所对应的域名或者是服务器Ip, 比如xxx.xxx.com或者是192.168.199.149这样。
接下来我们需要使用根证书对这个证书进行签名,但是在签名之前,需要做一些准备工作, 我们需要构建这样一个目录结构,在当前目录新建文件夹demoCA,
进入demoCA,在demoCA下创建两个文件index.txt和serial ,以及文件夹newcerts,其中index.txt的内容为空,serial的内容为01。
完成之后,就可以开始签名了

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

这条命令中涉及的所有文件都是在之前步骤中生成的,如果缺少了什么文件,最好回去检查一下步骤是否有问题。
命令执行后会要求确认是否进行签名,确认即可。
到这里,证书的构造已经完成,最终的目录结构应该是这个样子

3. 配置 SSL 服务

编辑 httpd.conf 文件

sudo vim /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

注意:如果你的 httpd.conf 中缺少了某行,你可以自行添加进去即可。(我的 httpd.conf 中就没有后面两行,自己加上去的)
编辑 httpd-ssl.conf 文件

sudo vim /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"

编辑 httpd-vhosts.conf 文件

sudo vim /private/etc/apache2/extra/httpd-vhosts.conf

在*NameVirtualHost :80后面添加
NameVirtualHost *:443
然后在文件末尾添加

<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 172.17.22.124 DocumentRoot "/Library/WebServer/Documents/"</VirtualHost>

ServerName填写你的 ip
DocumentRoot填写你的站点路径
检查 apachectl 配置

sudo apachectl configtest

如果它提示:Syntax OK,那就完成90%了,如果它提示有错,那就要根据错误提示自行解决了
重启 Apache 服务
sudo apachectl restart
这样就可以用 https 访问本地服务器了

二、建立在线安装服务

跳转到你的站点目录,我是 /Library/WebServer/Documents/
cd/Library/WebServer/Documents/
然后把plist文件,ipa包,还有前面生成在ssl目录中的ca.crt文件都拖到站点目录中
然后新建网页

sudo vimindex.html

输入以下内容

click to install appssl install

url中必须填写https开头的 ipa 包下载地址,然后下载前需要安装 ssl 证书,所以第二行附上 ca.crt 证书的下载地址
最后在 iphone 的 Safari 浏览器中输入地址https://192.168.199.149/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • CA和证书安全协议(SSL/TLS)OpenSSH 一、CA和证书 (一) PKI(Public Key Infr...
    哈喽别样阅读 1,420评论 0 0
  • httpd相关: httpd程序版本: 。1.3 停止维护 。2.0 。 2.2 event为测试使用 。 2.4...
    ckhzw阅读 418评论 0 0
  • 不知什么时候,男孩与女孩多了争吵,只是为了一点小事。他们感到彼此不再宽容,不再像从前那样爱着对方。 他们很伤感,禁...
    墨染辰阅读 267评论 0 0
  • Fine, I have done nothing today... I went shopping for a ...
    懂事小姐阅读 296评论 0 1