`

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

    博客分类:
  • HTTP
阅读更多

三、不要在IIS(信息服务器)中创建在自签名证书

在IIS中创建自签名证书似乎很容易——只需选择“Create Self-Signed Certificate”菜单项就行了:

不要在IIS(信息服务器)中创建在自签名证书

值得注意的是,IIS是使用计算机名作为证书中的主机名的:

IIS是使用计算机名作为证书中的主机名

而在大多数情况下,计算机名与你预想的主机名是不匹配的,这将会导致你的自签名证书不能被信任, 即使把它添加到iOS中:

自签名证书不能被信任

通过从IIS6工具箱安装和运行SelfSSL工具这个问题可以解决。不过,接下来这个使用OpenSSL的方法或许更容易。

四、使用OpenSSL,使创建自签名证书更加简单

创建自签名证书,其中一个最简单的方法就是使用OpenSSL命令行工具,这个方法适用于大多数平台,且它在Mac OSX上是默认安装的。

首先创建一个私人秘钥文件:

openssl genrsa -out myselfsigned.key 2048

然后:创建自签名证书:

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

你可以使用任意文件名作为密钥和证书(.cer)文件的文件名。/ CN参数需根据所需主机名(例如上面例子中的https://www.mysite.com)来设置。days参数指定过期日,从今天开始算起。

如果你不想下载OpenSSL的话,有一个网站可以帮你做:Self-Signed Certificate Generator,不过,自己做当然是最安全的。

在Apache服务器上,密钥和证书文件可以直接在SSL配置中使用。而在IIS中你需要一个PFX文件,以便将证书导入到IIS的服务器证书部分。 OpenSSL也可以为你创建PFX文件:

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

五、创建你自己的认证机构(CA)

使用自签名证书的一个问题是,你需要在每个设备上为每个证书设置信任关系。避开这个麻烦的一个方法就是创建你自己的认证机构(CA)根证书,然后基于它来创建证书。

你可以购买一个商业CA来创建SSL证书,然而你也可以自己充当自己的CA。自己创建认证机构的优势在于:你自定义的CA证书在每个设备上只需安装一次。设备会根据你的根CA证书自动信任你发出的任何证书。

创建CA证书只需两步,首先仍是创建一个私人秘钥:

openssl genrsa -out myCA.key 2048

然后创建证书:

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

上面创建的证书文件(myCA.cer)可公开分享,也可安装到iOS或其他操作系统中作为受信任根CA证书的一个嵌入。自定义的CA证书在iOS中保存在General->Settings->Profile下:

CA证书的保存

私人秘钥文件(myCA.key)只在创建新的SSL证书时才会使用。

基于这个CA证书,你可以根据需要创建任意数量的证书。这里还有一个步骤,就是创建一个CSR(客户端签名请求),正如你购买一个商业SSL证书一样。

首先创建一个私人秘钥:

openssl genrsa -out mycert1.key 2048

然后创建CSR:

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


再使用CSR来创建证书:

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设备进行访问。

分享到:
评论

相关推荐

    IOS,Android SSL双向认证HTTPS方式请求及配置证书

    1. **创建自签名证书**:首先,开发者需要为客户端和服务器分别创建自签名证书,并导入到各自的Keychain中。 2. **配置信任的根证书**:在iOS应用中,需要加载服务器的根证书,将其添加到`CFArray`中,然后设置为`...

    JRE包,uniapp生成自有证书使用

    本文将深入探讨“JRE包,uniapp生成自有证书使用”的主题,针对Android平台,详细讲解如何使用uniapp来创建和使用自签名的SSL证书,以及JRE(Java运行环境)在这一过程中的作用。 首先,uniapp是一个多端开发框架,...

    iOS的mobileconfig文件签名绿标工具,苹果描述文件签名

    在iOS中,签名是通过数字证书完成的,这可以是SSL证书或P12证书。SSL证书通常用于网站身份验证,而P12证书则更常见于应用程序和配置文件的签名。这个"iOS描述文件签名工具.exe"显然是一个专门为Windows用户设计的...

    ios企业证书

    在iOS开发过程中,企业证书是必不可少的一环,它允许企业内部发布应用程序,无需通过App Store审核,便于企业内部员工快速试用和分发。本文将详细介绍ios企业应用证书的使用,包括推送p12、打包p12以及云编译证书的...

    iOS 基于AFNetworking下自签名证书配置的方法

    在自签名证书配置中,理解AFNetworking的`AFSecurityPolicy`类以及`evaluateServerTrust:forDomain:`方法至关重要,因为这是进行服务器信任评估的地方。对于需要双向认证的应用,你可能需要重写此方法来实现客户端...

    WebLogicSSL解决苹果IOS itms下载问题NEW

    但在这个场景中,由于我们是自签名,你可以直接使用之前创建的CA来签署这个服务器证书请求。 **配置WebLogic SSL** 1. 登录WebLogic管理控制台,导航到`Security Realms` > `myrealm` > `SSL`。 2. 创建一个新的SSL...

    HttpsDemo Code

    总的来说,这个压缩包中的资源可以帮助开发者理解如何在iOS应用中使用`NSURLConnection`处理自签名证书的HTTPS连接,这对于那些需要在本地或测试环境中快速部署HTTPS服务的开发者来说非常有用。不过,要注意的是,自...

    iOS企业级应用的tomcat服务器和客户端配置

    这一步完成后,你的服务器就具备了使用自签名SSL证书的能力。 在客户端配置方面,iOS设备需要信任这个自签名证书。在设备的设置中,进入“通用”>“关于本机”>“证书信任设置”,找到你的证书并启用信任。这样,...

    ios 开发制作push证书(apns)

    在iOS开发过程中,推送通知(Push Notification)是一种重要的功能,它允许应用开发者向用户发送通知信息。而制作APNs(Apple Push Notification service)证书是实现iOS推送通知的前提。本知识点将详细介绍如何制作...

    swift-自动生成自签名HTTPS服务器可以快速安装ipaapk

    在自签名证书的场景下,开发者可以自己生成证书来建立一个自信任的HTTPS服务器,这对于测试和内部分发应用程序非常有用。 Swift中的URLSession和URLSessionDelegate是实现HTTPS服务器的关键组件。URLSession是苹果...

    Flash_For_IOS_p12证书

    综上所述,“Flash_For_IOS_p12证书”涉及的是在iOS环境下处理Flash内容所需的安全认证和设备授权过程,这包括了iOS描述文件的管理和p12证书的使用,以及它们在iOS应用开发和分发中的作用。由于Apple对Flash的不支持...

    ios不同证书下的推送推送

    ### iOS不同证书下的推送 在iOS开发过程中,推送通知(Push Notifications)是一项非常重要的功能,它可以帮助应用与用户保持互动并提升用户体验。然而,在实现这一功能时,开发者需要理解iOS推送服务(APNs, Apple...

    swift-ios-ipa-server创建一个HTTPS服务器来安装iOSipa

    在设置`swift-ios-ipa-server`时,你需要准备一个有效的SSL证书。这通常包括生成私钥、创建CSR(证书签名请求)、向CA(证书颁发机构)申请证书,或者使用自签名证书。如果你选择自签名证书,需要注意在每个目标设备...

    ios CertTest

    2. **证书导入**:将CA签发的证书导入到iOS设备的Keychain中,以便在应用中使用。 3. **加密和解密**:使用公钥加密敏感数据,只有持有对应私钥的接收方才能解密。这对于保护用户数据和通信安全至关重要。 4. **...

    iOS数据加密

    开发者可以使用Apple的内置工具如“钥匙串访问”(Keychain Access)创建自签名证书或购买权威CA签发的证书。当应用进行HTTPS请求时,服务器会提供其数字证书,客户端(iOS设备)会验证该证书的有效性,确保通信不会...

    ios openssl 1.0.1g

    为了在iOS项目中使用OpenSSL,开发者需要将这些库文件链接到Xcode项目中。这可以通过以下步骤实现: 1. 将压缩包中的库文件(libcrypto.a和libssl.a)复制到项目的"Libraries"目录下。 2. 在Xcode的"Build Phases...

    iOS https封装

    在iOS中,我们通常使用URLSession来实现网络请求,而为了支持HTTPS,我们需要配置SSL证书。 1. **配置SSL证书** - 开发阶段,可以使用自签名证书进行测试,但需要注意的是,自签名证书在生产环境中会被浏览器和...

    正确使用AFNetworking的SSL保证网络安全1

    然而,允许无效证书(`allowInvalidCertificates = NO`)是为了防止遇到自签名或未受信任的证书时,应用仍然能够继续执行,这在某些测试环境中可能是必要的,但在生产环境中应谨慎使用,因为这可能会导致安全漏洞。...

Global site tag (gtag.js) - Google Analytics