Mac apache本地配置ssl證書 及 iOS OTA部署

如果要實(shí)現(xiàn)iOS的 OAT分發(fā)喇潘,現(xiàn)在必須通過https才能實(shí)現(xiàn)兔乞,于是自己閑來無事自己研究了一下半夷。
首先第一步需要一個(gè)https的服務(wù)机杜,Mac自帶的apache可以很簡(jiǎn)單的是實(shí)現(xiàn)http的服務(wù)客情。對(duì)于https需要做的就是開啟ssl功能就行了其弊。

一、生成ssl證書

1膀斋、創(chuàng)建文件夾

為了文件的整潔梭伐,先創(chuàng)建一個(gè)文件夾來存放ssl相關(guān)的文件,手動(dòng)創(chuàng)建或者命令行創(chuàng)建都可以仰担。
路徑也隨便糊识,只要找到就可以,不過一般會(huì)放在/private/etc/apache2/下摔蓝,也建議放在這個(gè)文件目錄下技掏,便于管理。

sudo mkdir /private/etc/apache2/ssl
cd /private/etc/apache2/ssl
2项鬼、生成密鑰對(duì)

通過openssl生成密鑰對(duì)

sudo ssh-keygen -f server.key
3哑梳、生成證書請(qǐng)求文件

在設(shè)置信息的時(shí)候要注意 Common Name 一定要對(duì)應(yīng)服務(wù)器地址

sudo openssl req -new -key server.key -out request.csr
生成證書請(qǐng)求文件
3、生成ssl證書(有效期為一年)
sudo openssl x509 -req -days 365 -in request.csr -signkey server.key -out server.crt

目前為止生成的ssl證書已經(jīng)生成完畢绘盟,剩下的就是給apache配置ssl鸠真。

二悯仙、配置apache

配置ssl之前,先確保apache能夠正常的訪問使用
配置apache的文件是在一個(gè)隱藏的文件夾下吠卷,可以通過finder前往或者通過命令行直接打開

open /private/etc/apache2/
1锡垄、httpd.conf

打開 /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
2、httpd-ssl.conf

打開 /private/etc/apache2/extra/httpd-ssl.conf 文件
配置ssl證書和密鑰的路徑

SSLCertificateFile "/private/etc/apache2/ssl/server.crt"
SSLCertificateKeyFile "/private/etc/apache2/ssl/server.key"
3疾渴、httpd-vhosts.conf

打開 /private/etc/apache2/extra/httpd-vhosts.conf 文件
在文件的最后面添加以下信息

<VirtualHost *:443>
  SSLEngine on
  SSLCertificateFile /private/etc/apache2/ssl/server.crt
  SSLCertificateKeyFile /private/etc/apache2/ssl/server.key
  ServerName localhost
  DocumentRoot "這里填寫文件的存儲(chǔ)路徑"
</VirtualHost>


**ServerName 服務(wù)地址 **
**DocumentRoot一般apache的文件都在/Library/WebServer/Documents/**
5千贯、驗(yàn)證配置
sudo apachectl configtest

如果有以下錯(cuò)誤

AH00526: Syntax error on line 92 of /private/etc/apache2/extra/httpd-ssl.conf:

SSLSessionCache: 'shmcb' session cache not supported (known names: ). 
Maybe you need to load the appropriate socache module (mod_socache_shmcb?).

可根據(jù)提示進(jìn)行修改,找到 /private/etc/apache2/extra/httpd-ssl.conf 的92行搞坝。

去掉對(duì)應(yīng)行的注釋

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so 
6搔谴、啟動(dòng)或重啟apache
sudo apachectl restart

現(xiàn)在就可以通過https訪問apache服務(wù)了,不過由于是自簽名的會(huì)有安全警告桩撮,手動(dòng)設(shè)置信任就行了敦第。

三、OTA部署

在打包的過程中店量,到下面這步的時(shí)候芜果,如果勾選下圖的選擇框會(huì)引導(dǎo)生成OTA所需要的plist文件

勾選選擇框

點(diǎn)擊next之后會(huì)出現(xiàn)如下界面,進(jìn)行相關(guān)信息的填寫融师,下面的四項(xiàng)都是必填項(xiàng)


填寫信息

對(duì)于圖片有的可能會(huì)不需要师幕,并且在plist 文件中沒有圖片也不影響功能的實(shí)現(xiàn),所以隨便就可以诬滩,這些信息后期都可以通過修改plist文件來改變霹粥。

利用Xcode自動(dòng)生成的好處就是省去了自己構(gòu)建plist結(jié)構(gòu)的過程,如果你已經(jīng)有現(xiàn)成的plist文件就不用勾選第一幅圖的選擇框疼鸟,只用修改相應(yīng)的內(nèi)容就可以了后控。

plist 文件內(nèi)容
  1. bundle-identifier: 對(duì)應(yīng)ipa 的 bundle identifier
  2. bundle-version: 對(duì)應(yīng)ipa 的 version
  3. kind :software
  4. title :安裝包的名字

現(xiàn)在我們已經(jīng)有了https的服務(wù)器、ipa安裝包和plist文件空镜,OTA所需要的東西已經(jīng)齊全浩淘,剩下的就是將ipa和plist文件方法到服務(wù)端,提供下載安裝吴攒。

apache服務(wù)的默認(rèn)文件位置在/Library/WebServer/Documents/张抄,可以創(chuàng)建一個(gè)文件來放置OTA所需的文件

文件目錄

index.html的內(nèi)容,兩個(gè)連接洼怔,一個(gè)下載安裝包署惯,一個(gè)現(xiàn)在ssl的證書

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" mime-types="text/plain">
    <title></title>
  </head>
  <body>
    <a classstyle="display:block" href="itms-services://?action=download-manifest&url=https://192.168.0.129/OTA/manifest.plist">下載ipa</a>
    <a style="display:block" >下載證書</a>
  </body>
</html>

點(diǎn)擊"下載ipa",不出意外的話就會(huì)出現(xiàn)下面的界面镣隶,點(diǎn)擊安裝就ok了极谊。

安裝提示

<h2>總結(jié)一下遇到的坑</h2>
最大的坑就是在生成證書請(qǐng)求文件時(shí)诡右,沒注意到 Common Name 的設(shè)置,以至于后面點(diǎn)擊下載的時(shí)候一直提示連接失敗轻猖,找了好久才找到這個(gè)問題帆吻。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市咙边,隨后出現(xiàn)的幾起案子猜煮,更是在濱河造成了極大的恐慌,老刑警劉巖败许,帶你破解...
    沈念sama閱讀 222,590評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件王带,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡檐束,警方通過查閱死者的電腦和手機(jī)辫秧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門束倍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來被丧,“玉大人,你說我怎么就攤上這事绪妹∩穑” “怎么了?”我有些...
    開封第一講書人閱讀 169,301評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵邮旷,是天一觀的道長(zhǎng)黄选。 經(jīng)常有香客問我,道長(zhǎng)婶肩,這世上最難降的妖魔是什么办陷? 我笑而不...
    開封第一講書人閱讀 60,078評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮律歼,結(jié)果婚禮上民镜,老公的妹妹穿的比我還像新娘。我一直安慰自己轻绞,他們只是感情好梳杏,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評(píng)論 6 398
  • 文/花漫 我一把揭開白布邓尤。 她就那樣靜靜地躺著,像睡著了一般鲸鹦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上跷跪,一...
    開封第一講書人閱讀 52,682評(píng)論 1 312
  • 那天馋嗜,我揣著相機(jī)與錄音,去河邊找鬼吵瞻。 笑死嵌戈,一個(gè)胖子當(dāng)著我的面吹牛覆积,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播熟呛,決...
    沈念sama閱讀 41,155評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼宽档,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了庵朝?” 一聲冷哼從身側(cè)響起吗冤,我...
    開封第一講書人閱讀 40,098評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎九府,沒想到半個(gè)月后椎瘟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,638評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡侄旬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評(píng)論 3 342
  • 正文 我和宋清朗相戀三年肺蔚,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片儡羔。...
    茶點(diǎn)故事閱讀 40,852評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡宣羊,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出汰蜘,到底是詐尸還是另有隱情仇冯,我是刑警寧澤,帶...
    沈念sama閱讀 36,520評(píng)論 5 351
  • 正文 年R本政府宣布族操,位于F島的核電站苛坚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏色难。R本人自食惡果不足惜泼舱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望枷莉。 院中可真熱鬧娇昙,春花似錦、人聲如沸依沮。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽危喉。三九已至宋渔,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辜限,已是汗流浹背皇拣。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人氧急。 一個(gè)月前我還...
    沈念sama閱讀 49,279評(píng)論 3 379
  • 正文 我出身青樓颗胡,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國和親吩坝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子毒姨,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容