mac下ios内侧分发平台搭建

本文主要从申请SSL证书部分做详细介绍

一.搭建站点

http://blog.csdn.net/gavin__fan/article/details/78600636

二.申请SSL证书

 1.生成密钥
openssl genrsa -des3 -out private.key 2048
-des3代表加上了加密,后面的2048是代表生成的密钥的位数;输入完这个命令会提示你输入:private key,自己设置一个稍微强一些的密码
2.生成证书请求
openssl req -new -key private.key -out server.csr
这一步需要填写一些信息,其中Common Name (e.g. server FQDN or YOUR name) []这个需要填写你的域名或服务器地址。我没有域名,就填写iP地址。一个证书只能绑定一个IP地址,IP地址变化了,需要重新产生证书。
3.生成服务器的私钥,去除密钥口令
openssl rsa - in private.key -out server.key
4.使用私钥为证书请求签名,生成给服务器签署的证书,格式是x509的PEM格式
openssl x509 -req - in server.csr -out server.crt -outform pem -signkey server.key -days 3650
-outform pem指定证书生成的格式,默认是pem,所以这个命令也可以写作成
sudo openssl x509 -req - in server.csr -out server.crt -signkey server.key -days 3650

到这里,你已经成功了一半,目前你需要确认的事情是:找到你创建的证书。

并且确认他们的路径,下文需要用到,我是将它放在extra内的ssl文件夹下。

5.配置Apache

1.备份httpd.conf文件

cd /private/etc/apache2/ 
// 需要拷贝一份,为了操作失败后退回系统原样(只需要执行一次) 
sudo cp httpd.conf httpd.conf.bak 
//退回系统原样配置命令(只需要执行一次) 
sudo cp httpd.conf.bak httpd.conf

2.编辑httpd.conf文件

sudo vim /private/etc/apache2/httpd.conf

分别找到下面四行,去掉前面的#

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

找到DocumentRoot,更改根路径(需要在用户目录下,新建Sites文件夹)

改为DocumentRoot “/Users/$yourname/Sites”

3.复制httpd-ssl.conf文件

cd /private/etc/apache2/extra/ 
sudo cp httpd-ssl.conf httpd-ssl.conf.bak 
// 作用同上面对httpd.conf复制

4.编辑httpd-ssl.conf文件

将以下两行

SSLCertificateFile “/private/etc/apache2/server.crt” 
SSLCertificateKeyFile “/private/etc/apache2/server.key”

分别修改为:(需要注意的是ssl文件夹为自己创建的,我将他放在了extra目录下)

SSLCertificateFile “/private/etc/apache2/extra/ssl/server.crt” 
SSLCertificateKeyFile “/private/etc/apache2/extra/ssl/server.key”

5.复制httpd-vhosts.conf文件

sudo cp httpd-vhosts.conf httpd-vhosts.conf.bak

在文件末尾添加:

<VirtualHost *:443>
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile /private/etc/apache2/extra/ssl/server.crt
    SSLCertificateKeyFile /private/etc/apache2/extra/ssl/server.key
    ServerName localhost
    DocumentRoot "/Users/$yourname/Sites"
    <Directory "/Users/$yourname/Sites">
        AllowOverride All
        Allow from all
        Require all granted
    </Directory>
</VirtualHost>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

并把两块<VirtualHost *:80>全部注释掉

3.多行注释:
  1. 进入命令行模式,按ctrl + v进入 visual block模式,然后按j, 或者k选中多行,把需要注释的行标记起来
  2. 按大写字母I,再插入注释符,例如 #
  3. 按esc键就会全部注释了

5.测试配置

sudo apachectl configtest

6.重启apachec服务器

sudo apachectl -k restart

这样你的服务器即增加了https的支持。可以在浏览器访问https://localhost试试。如果不行,可以在logs\test-error_log文件中看看出了什么错误。

我的出现报错信息

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using AstraZenecadeMacBook-Pro.local. Set the 'ServerName' directive globally to suppress this message

解决办法:

sudo vim /private/etc/apache2/httpd.conf

加一句 ServerName  localhost:80

7. 最后,我们要将自己创建的CA证书安装到iphone上。将之前生成的server.crt文件通过邮件发送到iphone上,用自带的Mail程序(别的程序不行)打开安装即可。

8. 现在,再次访问我们之前的itms-services链接,就可以正常安装了。


9.最后一点,增加苹果对于OTA安装的说明

http://help.apple.com/deployment/ios/#/apda0e3426d7





 

发布了47 篇原创文章 · 获赞 15 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/gavin__fan/article/details/78615426