当前位置: 首页 > 云服务器

苹果iOS APP配置HTTPS,iOS ATS安装配置SSL证书

时间:2026-01-30 12:03:57

苹果iOS APP配置HTTPS,iOS ATS安装配置SSL证书!

1. 背景

2017年1月1日起,苹果AppStore中的所有App都必须启用 App Transport Security(ATS)安全功能。App TransportSecurity(应用程序安全传输),简称 ATS,是苹果在 iOS 9 中首次推出的一项隐私安全保护功能,启用ATS后,它会屏蔽明文HTTP资源加载,强制App通过HTTPS连接网络服务,通过传输加密保障用户数据安全。ATS在 iOS 9 中是默认开启的,但开发者仍然可以选择关闭 ATS,让自己的应用通过 HTTP 连接传输数据。但从2017年1月1日起,这招将行不通了,所有提交到 App Store 的App必须强制开启 ATS。

2. 影响

100%被拒的情况:

以下几种情况是特例,不会被拒:

3. 为什么要用 HTTPS

简单地说,HTTP是明文协议,通过该协议传输的数据处在被窃听、篡改、冒充这三大风险中,已经是非常不安全的传输协议。HTTPS是加密协议,就是在HTTP的基础上开启一条SSL加密通道,让原本明文“裸奔”的数据,从加密通道中密文传输,保证了数据传输的安全性。

目前,全球互联网正在进行从HTTP到HTTPS的大迁移,苹果一向非常关注用户隐私安全,在执行安全策略方面,态度也是非常强硬,实施强制HTTPS加密势在必行。

4. 准备工作

申请一个SSL证书

SSL证书按验证的类别可分:

DV SSL证书(域名验证型):只验证域名所有权,适合个人网站、博客等站点使用;

OV SSL证书(企业验证型):验证网站所属单位身份,适合企业级用户使用;

EV SSL证书(扩展验证型):扩展验证网站所属单位身份,这种证书在浏览器中会显示醒目的绿色地址栏,可信度最高,适合需要用户高度信任的企业级用户使用。

证书产品已经上线,支持苹果iOS系统。

5. AFN 配置 HTTPS

5.1.项目中的网络交互都是基于AFN,要求AFN版本在3.0及其以上;

5.2.代码部分

设置AFN请求管理者的时候 添加 https ssl 验证。

// 1.获得请求管理者

AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

// 2.加上这个函数,https ssl 验证。

[manager setSecurityPolicy:[self custSecurityPolicy]];

// https ssl 验证函数

(AFSecurityPolicy *)custSecurityPolicy {

// 先导入证书

NSString *cerPath = [[NSBundle mainBundle] pathForResource:@"xxx" ofType:@"cer"];//证书的路径

NSData *cerData = [NSData dataWithContentsOfFile:cerPath];

// AFSSLPinningModeCertificate 使用证书验证模式

AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModeCertificate];

// allowInvalertificates 是否允许无效证书(也就是自建的证书),默认为NO

//validatesDainName 是否需要验证域名,默认为YES;

5.3.关于证书

从CA获取到HTTPS证书后,会得到一个有密码的压缩包文件,使用for other server里面的dainrt的证书文件。

6. 后台服务器配置HTTPS证书(Ngnix)

从CA证书文件压缩包中,打开其中的for Nginx 文件可以看到 2 个文件,包括公钥、私钥。

打开Nginx安装目录下conf目录中的nginxonf文件找到

#HTTPS server

#

#server {

# listen 443;

# server_name localhost;

# ssl on;

# ssl_certificate cert.pem;

# ssl_certificate_key cert.key;

# ssl_session_timeout 5m;

# ssl_protocols SSLv2 SSLv3 TLSv1;

# ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;

# ssl_prefer_server_ciphers on;

# location / {

# root html;

# index index index.htm;

# }

#}

将其修改为 :

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate sslkey/publicer; (证书公钥)

ssl_certificate_key sslkey/private.key; (证书私钥)

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1TLSv1.2;

ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

location / {

root html;

# index index index.htm;

# }

#}

将其修改为 :

server {

listen 443;

server_name localhost;

ssl on;

ssl_certificate sslkey/publicer; (证书公钥)

ssl_certificate_key sslkey/private.key; (证书私钥)

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1TLSv1.2;

ssl_ciphers ECDH:AESGCM:HIGH:!RC4:!DH:!MD5:!aNULL:!eNULL;

ssl_prefer_server_ciphers on;

location / {

root html;

index index index.htm;

}

}

保存退出,并重启Nginx。

通过https方式访问您的站点,确认站点证书安装配置正确。


上一篇:国际域名注册价格体系的变化
下一篇:SSL证书和域名证书的区别是什么在哪
app ssl证书 https ats
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素