详解Nginx服务器和iOS的HTTPS安全通信
发布时间 - 2026-01-11 02:04:57 点击率:次详解Nginx服务器和iOS的HTTPS安全通信

简介
在网络通信中,使用抓包软件可以对网络请求进行分析,并进行重放攻击,重放攻击的解决方案一般是使用一个变化的参数,例如RSA加密的时间戳,但考虑到网络传输时延,时间戳需要有一定的误差容限,这样仍然不能从根本上防止重放攻击。想要较好的解决重放攻击问题,应考虑使用HTTPS通信,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP协议安全。
实现
对于用浏览器访问的网站,需要向CA申请证书才能保证HTTPS的网页被正常的浏览,否则会被警告是不安全或者未认证的网站,而对于一些后台数据的传输,使用自签署的证书即可。
服务端的配置
生成证书
在服务器的命令行下进行如下操作
①生成服务端的私钥,需要输入一个4~8191位的密码
openssl genrsa -des3 -out server.key 2048
②去除key文件的密码,这里需要输入①中填写的密码
openssl rsa -in server.key -out server.key
③生成csr文件,这一步要求输入多种信息,可以全部按回车跳过
openssl req -new -key server.key -out server.csr
④生成crt文件,这一步中的-days后为有效期,可以写长一点
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt
⑤合并crt与key制作pem,用于后面生成cer以供客户端验证
cat server.crt server.key > server.pem
⑥用pem生成cer,cer文件存放在客户端用于验证
openssl x509 -in server.pem -outform der -out server.cer
2.修改nginx配置文件
如果不知道配置文件的路径,使用下面的命令来打印。
nginx -t
这个命令可以用来测试配置文件是否正确,同时也会打印出路径。
根据打印的内容,打开nginx.conf,可以发现其中有一个http { … } 配置标签,在http标签中添加一个server配置标签。
server {
listen 443;
server_name localhost;
# 配置网站的根目录和首页的文件名和类型
index index.html index.htm index.php;
root <这里填写网站的根目录>
ssl on;
ssl_certificate <这里填写crt文件server.crt的全路径>
ssl_certificate_key <这里填写私钥key文件server.key的全路径>
# 下面是对php的配置,如果不配置,将无法正常解析php文件,这段配置是从nginx对HTTP的80端口配置中复制过来的,如果这段配置不能正常工作,请从自己的服务器对80端口的配置文件中复制过来。
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 1h;
}
# 这里如果不知道如何填写,请参考80端口的配置文件
include <nginx的conf目录路径>/rewrite/default.conf;
access_log <nginx服务器日志的路径>/default.log;
}
3.更新配置
nginx -t #测试配置文件是否正确 nginx -s reload #重新加载配置文件
到这里,服务端的配置就结束了。
客户端的配置
如果是CA颁发的证书,直接使用HTTPS请求即可,但我们是自签署证书,如果直接访问会报错,下面介绍一下使用AFN来配置自签署证书的HTTPS请求的方法。
1.将上文提到的cer证书导入到App的Bundle中
将server.cer导入bundle
2.在使用AFN进行请求前,先进行如下配置
AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey]; policy.allowInvalidCertificates = YES; AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager.securityPolicy = policy; // 下面使用manager进行HTTPS请求即可。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Nginx服务器和iOS的HTTPS安全通信
# iOS的HTTPS安全通信
# IOS-MVC层读取服务器接口JSON数据
# ios 服务器端推送证书生成的方法
# iOS APP 多服务器环境分离的方法
# iOS将相册中图片上传至服务器的方法
# Java使用NioSocket手动实现HTTP服务器
# iOS视频压缩存储至本地并上传至服务器实例代码
# IOS用AFN发送字符串形式的Json数据给服务器实例
# iOS 使用AFN上传视频到服务器示例代码
# IOS开发教程之put上传文件的服务器的配置及实例分享
# IOS利用CocoaHttpServer搭建手机本地服务器
# 配置文件
# 重放
# 服务端
# 客户端
# 这段
# 是否正确
# 自己的
# 放在
# 也会
# 是由
# 有一定
# 是从
# 这一步
# 希望能
# 较好
# 考虑到
# 报错
# 谢谢大家
# 介绍一下
# 首页
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何在IIS管理器中快速创建并配置网站?
JavaScript如何实现继承_有哪些常用方法
如何快速建站并高效导出源代码?
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
文字头像制作网站推荐软件,醒图能自动配文字吗?
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
西安专业网站制作公司有哪些,陕西省建行官方网站?
什么是JavaScript解构赋值_解构赋值有哪些实用技巧
详解jQuery停止动画——stop()方法的使用
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
如何快速打造个性化非模板自助建站?
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
如何快速生成凡客建站的专业级图册?
Win11怎么更改系统语言为中文_Windows11安装语言包并设为显示语言
微信小程序 input输入框控件详解及实例(多种示例)
Laravel如何创建自定义Facades?(详细步骤)
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
Laravel如何使用模型观察者?(Observer代码示例)
Laravel与Inertia.js怎么结合_使用Laravel和Inertia构建现代单页应用
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
HTML 中动态设置元素 name 属性的正确语法详解
七夕网站制作视频,七夕大促活动怎么报名?
Python高阶函数应用_函数作为参数说明【指导】
如何在建站之星网店版论坛获取技术支持?
如何用wdcp快速搭建高效网站?
Laravel安装步骤详细教程_Laravel环境搭建指南
html5如何实现懒加载图片_ intersectionobserver api用法【教程】
Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
香港网站服务器数量如何影响SEO优化效果?
java ZXing生成二维码及条码实例分享
如何用JavaScript实现文本编辑器_光标和选区怎么处理
java中使用zxing批量生成二维码立牌
Firefox Developer Edition开发者版本入口
Microsoft Edge如何解决网页加载问题 Edge浏览器加载问题修复
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
昵图网官方站入口 昵图网素材图库官网入口
linux top下的 minerd 木马清除方法
PHP正则匹配日期和时间(时间戳转换)的实例代码
Linux网络带宽限制_tc配置实践解析【教程】
JavaScript如何实现路由_前端路由原理是什么
PHP 500报错的快速解决方法
Java解压缩zip - 解压缩多个文件或文件夹实例
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
Laravel如何为API编写文档_Laravel API文档生成与维护方法
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
音乐网站服务器如何优化API响应速度?
🚀拖拽式CMS建站能否实现高效与个性化并存?
网站页面设计需要考虑到这些问题

