在iOS上使用自签名的SSL证书

Ubuntu 24.04 Server安装与初始化配置全指南:从镜像到SSH 从操作系统部署的基础概念出发,理解服务器环境初始化中的关键环节。Ubuntu 24.04 LTS作为主流Linux发行版,其Server版安装流程涉及镜像校验、分区规划、网络配置等核心步骤。新版默认采用DEB822格式的apt源,改变传统sources.list配置方式;安装器提供OpenSSH Server可选组件,直接影响远程管理能力。掌握这些原理,能有效规避装完无法联网、SSH连不上等常见问题。在企业级应用场景中,无论是物理机还是虚拟机,一套标准的初始化流程都能保障服务稳定运行。本文完整梳理Ubunt 阅读详情

本文译自:Five Tips for Using Self Signed SSL Certificates with iOS

小引:

上周苹果release了iOS 7.1,用户升级至此版本,去下载企业级应用时,如果应用不是用https部署的,那么会提示服务器上的证书无效,如下图所示:

小引:

在iOS 7.1中需要将plists文件的url路径设置为https才能下载安装,如果之前是用http部署的,这就需要对服务器做一些修改。网上流传着(Enterprise app deployment doesn’t work on iOS 7.1)把plist放到公开的具有https功能的文件服务器上即可(dropbox或SkyDrive),经试验,都是可行的。不过如要企业内部的网络无法访问外网,这又如何是好呢?网上也流传需要受信任的证书才行,这样一来对于某些企业的内部部署就比较麻烦了(局域网、主机名变动等都会引起很麻烦的事情),各区域可能还要用不同的证书(对应不同的host name)。

经查苹果的相关文档(2014年2月份),是可以使用http或者https的,后来打电话咨询苹果技术支持人员,告知文档还没来得及更新,不过自签名的证书也可以使用,最好首先要把证书(最好是CA根证书)通过mail或者配置工具安装到iOS设备上,然后根据这个CA构建web 服务器上用到的证书,这样当iOS设备访问web服务器来安装app时,就可以正常进行了。这样的话,我们只需要根据不同的服务器制作对应的自签名证书即可,有问题也方便修改跟进。

下面这篇文章就是介绍如何在iOS上面使用自签名的SSL证书。

先来看看目录:

  1. 在iPhone或者iPad上的Safari中不要接受自签名证书
  2. 像安装iOS的Configuration Profile一样安装自签名证书
  3. 不要用IIS创建自签名证书
  4. 利用OpenSSL创建自签名证书
  5. 创建自己的证书颁发机构(CA)

虽说SSL证书的购买价格不是太贵,不过有时候我们自行创建的话要更加方便一些,例如我们需要在开发环境配置SSL时、我们的测试服务器有不同的主机名或者开发的系统只有本地局域网才能访问。

实际上我们可以免费的创建自签名SSL证书,并不需要给证书颁发机构(CA)支付任何费用,也不需要遵守任何审计要求。

使用自签名SSL证书的缺点就是浏览器不会自动的信任相关的站点。如果用iPhone或者iPad上的Safari打开相关站点,会看到如下提示界面:

这里的HttpWatch iOS app还会有更详细的提示内容:

本文剩余内容将介绍如何对iOS做配置,以避免上面遇到的问题,以及如何方便的创建和管理自签名证书。

在iPhone或者iPad上的Safari中不要接受自签名证书

当在Safari中第一次访问自签名证书的站点时,会有如下提示(Continue或Details->Accept):

如果你照着选择的话,是可以在Safari中打开站点的,不过这样会有两个明显的缺点:

  1. 在Safari中接受证书只会添加一个SSL例外:防止Safari对此站点做出的警告提示。实际上并不会将证书安装到iOS中,以成为可信任的证书。同台设备的其它程序在连接该站点时仍然会失败。
  2. 一旦将SSL例外添加到iOS 7中了,就无法从iOS 7中移除。在之前的版本还可以通过Settings->Safari,选中”Clear Cookies and Data”进行删除。在iOS 7中这好像没有效果。———除非General > Reset > Reset Settings。

当然,苹果官方也提供了一个工具iPhone configuration utility for Mac and PC,通过该工具可以把证书安装至设备中。如果邮件不可用,或者要批量安装的话,这是一个好方法。

像安装iOS的Configuration Profile一样安装自签名证书

要想把SSL证书在iOS设备上安装为可信任的,可以通过发邮件到设备上,并将证书以附件的形式带在邮件中:

选择邮件中的附件,以将证书安装至iOS设备中。选择附件之后,选择Install来安装证书。完成安装之后,再在Safari或者其它iOS应用中使用该证书时,就不会有相关提醒了。

并且这与Safari添加的SSL例外有一个很大的区别,你可以在任意时刻通过Settings->General->Profiles来查看相关证书,如果有必要的话,还可以将其移除:

当然,苹果也提供了一个工具iPhone configuration utility for Mac and PC,通过该工具可以把证书安装到设备中,如果邮件不可用,或者要批量安装证书的话,可以用这个工具。

不要用IIS创建自签名证书

在IIS中创建自签名证书非常的简单。只需要选择菜单中的Create Self-Signed Certificate即可:

不过IIS简单的使用计算机名称当做证书的主机名:

大多数时候,计算机名称与主机名是不匹配的,这样的话自签名的证书永远都不会受信任——即使已经安装至iOS设备中:

要修复这个问题可以安装并运行IIS 6 Toolkit中的SelfSSL。不过,要是使用OpenSSL则非常简单,下面我们就来看看吧。

利用OpenSSL创建自签名证书

创建自签名证书最简单的一种方法就是使用OpenSSL命令行工具,这个工具在许多平台上面都可以使用,并且在Mac OSX上面是默认安装好了的。

首先,创建一个私钥文件:

1
openssl genrsa -out myselfsigned.key 2048

然后创建自签名证书:

1
2
openssl req -new -x509 -key myselfsigned.key -out myselfsigned.cer -days 365
-subj /CN=www.mysite.com

上面的命令中,关于私钥和证书(cer)的文件名可以是任意的。其中CN参数需要设置为主机名(例如https://www.mysite.com)。而days参数则指定证书从创建开始的有效天数。

在Apache服务器上面可以直接使用私钥和证书文件(做相关的SSL配置即可)。在IIS中需要一个PFX文件,通过该文件,可以将证书导入至IIS的Server Certificates中。当然通过OpenSSL可以创建PFX文件:

1
2
openssl pkcs12 -export -out myselfsigned.pfx -inkey myselfsigned.key
-in myselfsigned.cer

创建自己的证书颁发机构(CA)

使用自签名证书会有这样的问题:需要为每台设备中用到的每个证书设置相关的信任关系。有一个解决办法就是创建自己的证书颁发机构(CA)根证书,然后基于该根证书创建别的证书。

这样一来就是自己扮演着CA,取代了商业性质的CA。这样做的好处就是自己的CA证书只需要在每台设备上安装一次即可。之后,设备会自动的信任基于CA根证书创建的证书。

创建CA证书只需要两个步骤即可,首先是创建私钥文件(跟之前的一样):

1
openssl genrsa -out myCA.key 2048

然后是创建证书:

1
2
openssl req -x509 -new -key myCA.key -out myCA.cer -days 730
-subj /CN="My Custom CA"

上面创建的证书(myCA.key)可以公开发布出去,并安装在iOS或者其它OS上,以此当做内置的受信任根CA。自制的CA证书存储在General->Settings->Profile:

其中私钥文件(myCA.key)只用是再创建新的SSL证书时使用。

上面的CA创建好之后,我们可以基于该证书创建许多证书。注意,这里多了一个步骤:必须创建一个CSR(客户端证书请求文件)——就像购买商业的SSL证书一样。

首先需要创建一个私钥文件:

1
openssl genrsa -out mycert1.key 2048

然后是创建CSR:

1
openssl req -new -out mycert1.req -key mycert1.key -subj /CN=www2.mysite.com

接着用这个CSR创建证书:

1
2
openssl x509 -req -in mycert1.req -out mycert1.cer -CAkey myCA.key
-CA myCA.cer -days 365 -CAcreateserial -CAserial serial

这里创建的证书(mycert.cer)可以安装在一台web服务器上,并且已经安装了相关CA证书的iOS设备都可以访问该web服务器。

openssl给内网IP生成ca证书(ssl证书) 阅读详情

相关推荐

从零到一:金蝶云星空企业版v8.0本地部署的五大避坑指南

本文详细解析金蝶云星空企业版v8.0本地部署过程中的五大常见问题及解决方案,包括SSL/TLS检测失败、数据库连接配置、路径设置优化、内网访问配置和性能调优。特别针对内网穿透等远程办公场景提供实用技巧,帮助企业IT人员高效完成部署并提升系统稳定性。

rock5的博客 274

OpenSSL 生成自签证书

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33919950的博客 323

资金穿透分析

我们把准备好的银行数据导入到软件中,导入具体步骤这里不做详解,大家可以通过“清林情报分析师”公众号,查看操作视频第二节

清林情报分析师 3489

openssl生成https证书及nginx https配置

一、nginx根目录下创建 cert 目录,用于存放https证书。二、openssl生成https证书证书。三、nginx配置https。

爱兰河少 3794

win10自动修复-无限循环【通用完美】超简单解决办法

2020.02.14今个我的笔记本电脑(Thinkpad Carbon 7 X1)(win10)早晨起来发现蓝屏,上面显示自动修复失败,重启后依然自动修复失败,不断手动重启,始终是修复失败。然后上网开始搜集资料找解决办法。 前边介绍关闭自动修复,如何找出错文件的方法;如果想看最终解决办法,直接看第三部分 上网就会发现这种现象很常见,同时是电脑自动安装系统更新,或者安装某些驱动出现。解决办法也大...

y15941300574的博客 19万+

Spark Graphx 项目实战(航班飞行网图分析)

航班飞行网图分析一.需要的技能点二.任务描述三.数据探索1.下载数据2.数据格式四.航班飞行网图问题分析1.构建航班飞行网图2.统计航班飞行网图中机场与航线的数量3.计算最长的飞行航线4.找出最繁忙的机场5.找出最重要的飞行航线6.找出最便宜的飞行航线五.代码实现 一.需要的技能点 Spark GraphX API Spark GraphX PageRank Spark GraphX Pregel 二.任务描述 需求概述: 探索航班飞行网图数据 构建航班飞行网图 使用Spark GraphX完成下列任

May_J_Oldhu的博客 1538

在iOS中创建及使用自签名SSL证书(上)

在iOS中使用自签名SSL证书时,常常会收到浏览器关于站点的安全警告。如何设置iOS才能避免接收此类警告呢?本文将分为上下两篇,详细为你介绍如何在iOS中创建及使用自签名SSL证书以及如何简化自签名证书的创建和管理。

u010706368的专栏 2099

在Jetson Orin (Arm64)上从Ubuntu22.04回退至20.04的完整指南及ROS-noetic适配方案

本文提供了在Jetson Orin (Arm64)设备上将Ubuntu 22.04系统回退至20.04 LTS版本的完整操作指南。针对机器人开发中ROS-noetic对Ubuntu20.04的官方最佳支持,详细阐述了从关键备份、软件源与APT优先级配置、系统降级执行到后续问题排查的全过程,并附带了在Arm64架构上成功安装和验证ROS-noetic的适配方案,旨在为开发者构建稳定可靠的机器人开发环境。

flower的专栏 580

iOS开发:校验HTTPS网络请求证书(SSL证书和自签名证书)

title: iOS开发:校验HTTPS网络请求证书(SSL证书和自签名证书) date: 2019-03-14 14:50:28 tags: SSL pinning comments: true categories: iOS技术 前言 SSL pinning在构建一个高度安全的移动APP上扮演了一个十分重要的角色。然而如今好多用户在使用无线移动设备去访问无数不安全的无线网络。 这篇文章主要覆...

oメ嘹⑩咋o咧!歡迎來访ー訫隨の飛ー专栏 3011

ubuntu20.04搭建QGC4.2编译环境

QGC 4.2ubuntu18.04也可以编译QGC4.2,但是由于GLBC版本较低,无法使用最新版的QTCreator,Ubuntu20.04可以使用最新版QTCreator。

超维空间科技的博客 1万+

【AirPlay】苹果认证MFI学习

配件认证是一个过程,通过这个过程,可验证其配件符合MFi技术规范,并通过苹果指定的任何认证测试。MFi门户中的产品计划 "认证 "页面将指导你完成特定配件所需的认证步骤,并指出何时完成所有要求。在完成所有MFi认证要求之前,你不得制造、分发或销售任何配件。在开始MFi认证过程之前,你必须测试你的配件,以确保它符合最新的MFi技术规范,通过产品计划 "测试计划 "上的所有适用测试,并与它将声称具有兼容性的每个苹果设备兼容。

天天的博客 2275

iOS适配HTTPS,创建一个自签名的SSL证书(x509)具体步骤

iOS适配HTTPS,创建一个自签名的SSL证书(x509)具体步骤 引言(创建生成的证书只能用于测试使用。如果想使用自签名证书就只能以自己为 CA机构颁发证书,进行双向认证才能使用) 使用HTTP(超文本传输)协议访问互联网上的数据是没有经过加密的。也就是说,任何人都可以通过适当的工具拦截或者监听到在网络上传输的数据流。但是有时候,我们需要在网络上传输一些安全性或者私...

diaoju3333的博客 353

《QGIS快速入门与应用基础》021:插件仓库 URL 获取与添加

详细介绍了在QGIS中添加第三方插件仓库的方法。首先强调必须从官方推荐、开源社区等可靠渠道获取插件仓库URL以确保安全性,并列出了4类可信获取渠道。文章分步骤讲解了URL添加流程,包括打开插件管理器设置面板、填写仓库信息、刷新缓存验证等操作。针对常见问题如URL格式错误、连接失败等提供了具体解决方案。最后总结指出,成功添加第三方仓库后即可直接搜索安装各类专业插件,从而扩展QGIS功能边界。全文注重实操指导,特别适合需要安装行业专用插件的QGIS用户参考。

LuckyHanMo的博客 465

iOS开发HTTPS实现之信任SSL证书和自签名证书

iOS开发HTTPS实现之信任SSL证书和自签名证书 转自:http://www.jianshu.com/p/6b9c8bd5005a/comments/5539345 (收录一下供自己学习用的) 字数1566 阅读5025 评论76 喜欢30 首先来分析一下什么是HTTPS以及了解HTTPS对于iOS开发者的意义 HTTPS 以及SSL/TSL 什么是SSL? ...

weixin_30568715的博客 839

数字 IC 笔试面试必考点(1)FPGA 芯片架构

FPGA 芯片架构是非常重要的,如果你不了解 FPGA 芯片内部的详细架构,那么...

新芯设计的博客 2807

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

ios 自架验证服务器,iOS和SSL:无法验证自签名的服务器证书

我是相当新的使用SSL通道消费web服务。经过相当不错的搜索后,我发现了一种使用NSURLConnection委托API执行SSL/HTTPS身份验证的方法。以下是代码片段进行实际验证的事情:iOS和SSL:无法验证自签名的服务器证书- (void)connection:(NSURLConnection *)connection willSendRequestForAuthenticationCh...

weixin_28957519的博客 656

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

iOS HTTPS 与自签名证书

iOS HTTPS 与自签名证书

qq_43685389的博客 991

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

在iOS中创建及使用自签名SSL证书(下)

在iOS中使用自签名SSL证书时,常常会收到浏览器关于站点的安全警告。如何设置iOS才能避免接收此类警告呢?在上文中,我们讲到了不要在移动Safari中接受自签名证书的原因以及安装自签名证书作为iOS的配置参数文件的优势。在下文中,我们接着来看在iOS中创建及使用自签名SSL证书还应该注意哪些。

u010706368的专栏 3216

iOS开发信任SSL证书和自签名证书实现HTTPS

iOS开发信任SSL证书和自签名证书实现HTTPS 首先来分析一下什么是HTTPS以及了解HTTPS对于iOS开发者的意义 HTTPS 以及SSL/TSL 什么是SSL? SSL(Secure Sockets Layer, 安全套接字层),因为原先互联网上使用的 HTTP 协议是明文的,存在很多缺点,比如传输内容会被偷窥(嗅探)和篡改。 SSL 协议的作用就是在传输层对网络

sara_xuehua的专栏 661

在iOS中使用自签名证书的5点技巧

在iOS中使用自签名证书的5点技巧

hffugff的博客 2776
上一篇: 蓝牙设计
下一篇: tabbar 按钮形状自定义显示问题
宇之楓鷙
博客等级 码龄17年 5粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值