阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

AFNetworking+Nginx+HTTPS服务器通信

155次阅读
没有评论

共计 2917 个字符,预计需要花费 8 分钟才能阅读完成。

介绍 iOS 平台用 AFNetworking 与 HTTPS 后台接口进行安全通信。2. 介绍后台自签名证书制作步骤。3. 以及 Linux 平台 Nginx 配置 HTTPS 协议接口的 Web 站点。

这个关于 AFNetworking 的 HTTPS 安全通信的问题,很多没有过第一次经验的以及甚至有过一次经验的都会有点不确定。其实很简单:

  • A. 对于后台服务器所配置动证书如果是经过 CA 机构认证颁发的,那么用户用 AFNetworking 来访问后台接口完全无感觉,就和 http 一样的方式。
  • B. 但是一个 HTTPS 的证书如果是知名 CA 机构认证颁发的,那么就会有问题,AFNetworking 默认拒绝和这样的后台服务器通信,因为验证通不过,就和大家网页打开 12306 网站抢票一样,那个证书也不是经过 CA 颁发的,而是铁道部自己签名的一个证书。所以,对于中小型初创或是成长型公司来说,买一个 https 的证书也是需要花费不少费用的。所以大家在做后台通信的时候一般都自签名一个证书来实现 https 接口。自己签名的的证书可以用下面这个 openssl 命令进行生成:
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 的虚拟主机配置文件,
sudo touch /etc/nginx/sites-available/tv.diveinedu.com
  • 2. 然后使这个配置文件生效:
sudo ln -sf /etc/nginx/sites-available/tv.diveinedu.com /etc/nginx/sites-enabled/tv.diveinedu.com
  • 3. 编辑该文件:
sudo vim /etc/nginx/sites-enabled/tv.diveinedu.com
  • 4. 敲入 i 进入 VIM 编辑模式,输入这样配置:

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;# 默认首页
    }
}
  • 5. 敲 ESC 后退出 VIM 的编辑模式,再敲入 x 回车 在 Vim 保存退出。然后执行 Nginx 配置文件语法检查命令检查配置是否有错:
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 服务器了
sudo service nginx restart

然后就去你的域名服务商后台把你的域名解析到服务器到 IP 地址就可以自由访问了,只不过会浏览器访问会被自动组织并显示警告,手动添加到信任即可。

如果公司有钱想为用户提供更好的服务和体验,最好还是去知名 CA 认证机构去注册申请一个有效的证书为妙!不然浏览器 (Chome) 会这样:

AFNetworking+Nginx+HTTPS 服务器通信

AFNetworking+Nginx+HTTPS 服务器通信

 

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-11/125637.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2917字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中