欢迎来到站长教程网!

Nginx

当前位置:主页 > 服务器教程 > Nginx >

详解Nginx处事器和iOS的HTTPS安详通信

时间:2021-05-04|栏目:Nginx|点击:

详解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中

详解Nginx办事器和iOS的HTTPS和平通信

将server.cer导入bundle

2.在利用AFN举办请求前,先举办如下设置

AFSecurityPolicy *policy = [AFSecurityPolicy policyWithPinningMode:AFSSLPinningModePublicKey];
policy.allowInvalidCertificates = YES;
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.securityPolicy = policy;
// 下面利用manager举办HTTPS请求即可。

感激阅读,但愿能辅佐到各人,感谢各人对本站的支持!

您大概感乐趣的文章:

上一篇:Nginx反向署理实现支持长毗连详解

栏    目:Nginx

下一篇:Nginx扬弃http包体处理惩罚实例详解

本文标题:详解Nginx处事器和iOS的HTTPS安详通信

本文地址:www.jiaocheng88.com.cn/Nginx/61859.html

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:584415406 | 邮箱:584415406#qq.com(#换成@)

Copyright © 2015-2020 小白站长教程网 版权所有 苏ICP备20040415号-3