iOS https 自制证书 单向 双向 验证,以及服务器(Nginx)配置

本文详细介绍了iOS应用中https的使用,包括自签名证书的生成、Nginx服务器的https配置、XCode和AFNetworking的https支持。讨论了证书的类型,如付费和免费商业证书,以及如何通过OpenSSL工具创建自签名证书。此外,还提供了配置Nginx和解决iOS客户端https验证问题的步骤。
摘要由CSDN通过智能技术生成

一、http和https的区别与原理

介绍原理的博文太多了,这里列出一篇详细的:

IOS 使用自签名证书开发HTTPS文件传输

 

二、证书的类型和自制证书生成

1.什么是数字证书(Certificate)

在HTTPS的传输过程中,有一个非常关键的角色——数字证书,那什么是数字证书?又有什么作用呢?

所谓数字证书,是一种用于电脑的身份识别机制。由数字证书颁发机构(CA)对使用私钥创建的签名请求文件做的签名(盖章),表示CA结构对证书持有者的认可。数字证书拥有以下几个优点:

  1. 使用数字证书能够提高用户的可信度
  2. 数字证书中的公钥,能够与服务端的私钥配对使用,实现数据传输过程中的加密和解密
  3. 在证认使用者身份期间,使用者的敏感个人数据并不会被传输至证书持有者的网络系统上

X.509证书包含三个文件:key,csr,crt。

  • key是服务器上的私钥文件,用于对发送给客户端数据的加密,以及对从客户端接收到数据的解密
  • csr是证书签名请求文件,用于提交给证书颁发机构(CA)对证书签名
  • crt是由证书颁发机构(CA)签名后的证书,或者是开发者自签名的证书,包含证书持有人的信息,持有人的公钥,以及签署者的签名等信息

备注:在密码学中,X.509是一个标准,规范了公开秘钥认证、证书吊销列表、授权凭证、凭证路径验证算法等。

关于这三种证书的区别和原理,以及前两种证书的申请方式,网上介绍太多了,大家可以自行搜索。

2.付费商业证书

要钱。

3.免费商业证书

腾讯云和阿里云都能申请免费商业证书,好像都是一年,一年到期怎么续签不太清楚。腾讯云申请免费商业证书没试过,阿里云现在申请免费商业证书步骤比较深。

4.自制证书

工具:

OpenSSL ssl的开源实现,几乎实现了市面上所有的加密

libcrypto: 通用加密库, 任何软件要实现加密功能 链接调用这个库

libssl: TLS/SSL 加密库

openssl: 命令行工具 多功能多用途工具 实现私有证书颁发机构

子命令:

genrsa [-out filename] [-passout arg] [numbits]

generate an RSA private key

生成一个 RSA 的私钥 (公钥是从私钥中提取的,有了私钥 就有公钥)

openssl rsa -in ca.key -pubout 提取私钥

创建证书的基本流程

  • 生成自己的服务端私钥 Server Key

  • 输入基本信息并用私钥签名生成CSR 证书签名请求(csr中间文件可以不生成,直接生成crt文件)

  • 提交CSR给证书机构CA(免费或商业证书)签名生成CRT,或自己做CA签名生成CRT(自签名证书)

生成RSA服务器私钥:

openssl genrsa -out server.key 2048

输出的server.key文件就是服务器私钥,2048是密钥长度,要求不高的话用4096也可。

执行命令 生成 CSR 文件:

openssl req -new -nodes -sha256 -newkey rsa:2048 -keyout myprivate.key -out mydomain

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值