美文网首页
单向SSL自签名证书-证书创建、iOS端和服务端配置

单向SSL自签名证书-证书创建、iOS端和服务端配置

作者: BeginnerX | 来源:发表于2018-09-20 10:46 被阅读0次

           最近遇到这么一个问题,在开发中使用的是https协议访问接口。后端小哥给了我一张base64编码的自签名证书。我把证书放到工程里面后,发现看不到证书的内容。如下图:

    xcode中的证书截图

            明显证书有问题,让后端小哥帮忙解决下。后端小哥说他也不知道怎么弄。询问了下测试妹子以前遇到过这种问题没。妹子让我用MAC签一张自签名证书来试试。

    准备证书

    准备密钥

    genrsa -des3 -out server.key 2048

    执行结果:

    genrsa -des3 -out server.key 2048 执行结果

    命令中包含参数 -des3 ,所以命令在执行过程中会提示输入口令。

    生成证书请求文件

    openssl req -new -key server.key -out server.csr

    执行结果:

    openssl req -new -key server.key -out server.csr 执行结果

    在命令执行过程中需要输入一些证书申请需要的信息。

    生成自签名证书

    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

    执行结果

    命令执行结果

    iOS端配置

    将证书文件格式由crt转换成cer

    openssl x509 -in server.crt -out server.cer -outform der

    执行结果

    命令执行结果

    将server.cer放到工程中,可以看到证书内容,如下图:

    证书内容

    代码中配置(AFN3.0)

    // 1.初始化单例类

    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];

    AFSecurityPolicy *securityPolicy = [AFSecurityPolicy policyWithPinningMode:IFSSLPinningModeCertificate];

    securityPolicy.allowInvalidCertificates = YES;  // 客户端是否信任非法证书

    securityPolicy.validatesDomainName = NO;    // 客户端是否信任非法证书

    // 2.设置证书模式

    NSString * cerPath = [[NSBundle mainBundle] pathForResource:@"server" ofType:@"cer"];

    NSData * cerData = [NSData dataWithContentsOfFile:cerPath];

    NSMutableArray *certContentArray = [NSMutableArray array];

    [certContentArray addObject:certData];

    [securityPolicy setPinnedCertificates:certContentArray];

    manager.securityPolicy = securityPolicy;

    服务端配置

    后端服务部署在Tomcat上。先将cer 转换成jks格式

    openssl pkcs12 -export -in server.crt -inkey server.key -out server.pfx

    keytool -import -alias mycert -file server.cer -keystore server.jks

    在命令执行过程中需要输入jks文件的密钥。

    然后配置Tomcat

    server.xm配置文件

    将图中 keystoreFile和keystorePass修改为生成的文件和设置的密码。

    完成!

    相关文章

      网友评论

          本文标题:单向SSL自签名证书-证书创建、iOS端和服务端配置

          本文链接:https://www.haomeiwen.com/subject/fvrgnftx.html