AFNetworking+Nginx+HTTPS服務器通信
1.介紹iOS平臺用AFNetworking與HTTPS后臺接口進行安全通信。 2.介紹后臺自簽名證書制作步驟。 3.以及Linux平臺Nginx配置HTTPS協議接口的Web站點。
這個關于AFNetworking的HTTPS安全通信的問題,很多沒有過第一次經驗的以及甚至有過一次經驗的都會有點不確定。 其實很簡單:
- A.對于后臺服務器所配置動證書如果是經過CA機構認證頒發的,那么用戶用AFNetworking來訪問后臺接口完全無感覺,就和http一樣的方式。
- B.但是一個HTTPS的證書如果是知名CA機構認證頒發的,那么就會有問題,AFNetworking默認拒絕和這樣的后臺服務器通信,因為驗 證通不過,就和大家網頁打開12306網站搶票一樣,那個證書也不是經過CA頒發的,而是鐵道部自己簽名的一個證書。所以,對于中小型初創或是成長型公司 來說,買一個https的證書也是需要花費不少費用的。所以大家在做后臺通信的時候一般都自簽名一個證書來實現https接口。自己簽名的的證書可以用下 面這個openssl命令進行生成: </ul>
openssl req -new -x509 -nodes -days 365 -newkey rsa:1024 -out tv.diveinedu.com.crt -keyout tv.diveinedu.com.key
其中: -days 365是指定證書的有效期時間長度,單位是天,從命令運行的時刻算起; -newkey rsa:1024是指定新生成的證書使用1024位長度的RSA非對稱加密算法; -out 指定輸出的證書文件名 -keyout 指定輸出的私鑰文件名 上面這個命令運行后會要輸入一些設置信息:
Country Name (2 letter code) [AU]:CN State or Province Name (full name) [Some-State]:Hunan Locality Name (eg, city) :Changsha Organization Name (eg, company) [Internet Widgits Pty Ltd]:tv.diveinedu.com Organizational Unit Name (eg, section) :Market Common Name (e.g. server FQDN or YOUR name) :tv.diveinedu.com Email Address :diveinedu@qq.com
如果對搭建Linux后臺HTTPS服務有興趣,需要把證書和私鑰上傳到服務器或者直接在服務器生成,把此證書配置到后臺服務器中,以Nginx為例進行如下設置:
- 1.先新增一個Nginx的虛擬主機配置文件, </ul>
sudo touch /etc/nginx/sites-available/tv.diveinedu.com
- 2.然后使這個配置文件生效: </ul>
sudo ln -sf /etc/nginx/sites-available/tv.diveinedu.com /etc/nginx/sites-enabled/tv.diveinedu.com
- 3.編輯該文件: </ul>
sudo vim /etc/nginx/sites-enabled/tv.diveinedu.com
- 4.敲入 i 進入VIM編輯模式,輸入這樣配置: </ul>
server { listen 80;#HTTP默認端口80 server_name tv.diveinedu.com;#主機名,與HTTP請求頭域的HOST匹配 access_log /var/log/nginx/tv.diveinedu.com.log;#訪問日志路徑 return 301 https://$server_name$request_uri;#強制把所有http訪問跳轉到https }server { listen 443;#HTTPS默認端口443 ssl on;#打開SSL安全Socket ssl_certificate /etc/nginx/tv.diveinedu.com.crt;#證書文件路徑 ssl_certificate_key /etc/nginx/tv.diveinedu.com.key;#私鑰文件路徑
server_name tv.diveinedu.com;#主機名,與HTTP請求頭域的HOST匹配 access_log /var/log/nginx/tv.diveinedu.com.log;#訪問日志路徑 location / { root /var/www/tv.diveinedu.com/;#網站文檔根目錄 index index.php index.html;#默認首頁 }
}</pre>
- 5.敲ESC后退出VIM的編輯模式,再敲入 x 回車 在Vim保存退出。 然后執行Nginx配置文件語法檢查命令檢查配置是否有錯: </ul>
nginx -t
如果沒有錯誤就會輸出:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
- 6.然后就只需要重啟Nginx服務器了 </ul>
sudo service nginx restart
然后就去你的域名服務商后臺把你的域名解析到服務器到IP地址就可以自由訪問了,只不過會瀏覽器訪問會被自動組織并顯示警告,手動添加到信任即可。
如果公司有錢想為用戶提供更好的服務和體驗,最好還是去知名CA認證機構去注冊申請一個有效的證書為妙! 不然瀏覽器(Chome)會這樣:
來自:http://my.oschina.net/kgdugyiy/blog/536365 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!