生成RSA用的证书

作者: 倚楼听风雨wing | 来源:发表于2016-03-23 13:42 被阅读1926次

一、背景简介

由于公司最近要在项目上增加热修复的功能,也就是下载一段JS代码就能修复已经上线了的APP的bug.可是由于公司服务器还没有升级到HTTPS,所以在JS传输过程的的安全问题,就成了一个重大的问题,最终决定用RSA加密的方式来保证数据传输的安全性.

二、制作RSA用的证书步骤

  1. 环境:openssl,由于Mac自带openssl环境,所以不用安装,直接打开终端. [注:生成的证书文件都在当前路径下,可以切换路径到想要保存证书文件的文件夹下]
  2. 生成密钥1024是指定密钥的长度
    openssl genrsa -out private.pem 1024
    在终端输入cat private.pem可以查看pem文件,经过查看可以知道这是一个base64编码的二进制文件.
  3. 生成证书请求文件(公钥,组织信息,联系人信息等,这里会让你输入很多东西,只需依次输入即可,如果不知道输入什么可以随便填写)
    openssl req -new -key private.pem -out rsa.csr
  4. 给签名后的证书设置有效期
    openssl x509 -req -days 365 -in rsa.csr -signkey private.pem -out rsa.crt
  5. 将pem文件格式转换成der格式 [目的:pem是经过base64。系统加密的时候要使用base64解码后的二进制文件]
    openssl x509 -outform der -in rsa.crt -out rsa.der
    6.导出我们的私钥p12
    openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsa.crt

7.der是公钥,p12是私钥,所在的路径是:当前终端的路径.

三、证书文件如何在项目中使用

把生成的derp12拖入到项目中

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //RSA  非对称加密   加密 要加载公钥   解密要加载私钥
    CryptorTools *tools = [CryptorTools new];
    
    //加密
    //加载公钥
    NSString *path = [[NSBundle mainBundle] pathForResource:@"rsa.der" ofType:nil];
    [tools loadPublicKeyWithFilePath:path];
    
    NSString *cryptStr = [tools RSAEncryptString:@"王启镰"];
    NSLog(@"王启镰RSA加密后的字符串: %@",cryptStr);
    
    //解密
    //加载私钥
    path = [[NSBundle mainBundle] pathForResource:@"p.p12" ofType:nil];
    
    /** 这里的123456就是在导出p12的时候你输入的密码 **/
    [tools loadPrivateKey:path password:@"123456"];
    NSString *decryptStr = [tools RSADecryptString:cryptStr];
    NSLog(@"解密后的字符串: %@",decryptStr);
}

四、知识补充

非对称加密算法RSA

  • 使用 公钥 加密, 使用 私钥 解密
  • 使用 私钥 加密, 使用 公钥 解密
  • 更安全[https就是用的RSA加密算法]
  • 适合小数据加密
  • 缺点: 加密速度慢

使用场景
一般使用RSA加密对称加密的密钥

相关文章

  • 生成RSA用的证书

    一、背景简介 由于公司最近要在项目上增加热修复的功能,也就是下载一段JS代码就能修复已经上线了的APP的bug.可...

  • 使用openssl自行颁发SSL证书

    ssh登陆到服务器上,终端输入以下命令,使用openssl生成RSA密钥及证书。 生成证书 生成证书的时候注意:除...

  • 搭建CAS linux下的一些命令

    生成证书: keytool -genkey -alias ssodemo -keyalg RSA -keysize...

  • API 安全机制 | HTTPS

    生成自签证书 keytool -genkeypair -alias lixinlei -keyalg RSA -k...

  • openvpn

    1.为了保证OpenVPN的安装,需要使用easy-rsa秘钥生成工具生成证书 2.生成秘钥证书前,需要准备var...

  • RSA证书生成

    RSA证书生成 MAC用户可以直接打开终端运行以下代码: 证书名都带_bocrps 这是为bocrps项目生成的R...

  • CentOS 7 openvpn 服务搭建

    一、安装软件 二、使用 easy-rsa 生成 server 端证书 拷贝 easy-rsa 到一个新目录 配置 ...

  • golang&echo 开启HTTPS 服务

    一.使用openssl 生成SSL自签证书 第一步:生成私钥 使用openssl工具生成一个RSA私钥 说明:生成...

  • 0

    ①RSA2048 p10[iOS]通过openssl库生成pkcs#10证书iOS开发——openssl生成CSR...

  • CentOS 7.1部署OpenVPN服务器

    1、安装openvpn、easy-rsa 2、安装依赖包 3、配置easy-rsa-3.0 4、生成服务端证书 创...

网友评论

  • 阿尔法代码狗:这个得和都太对接,我生成了证书der文件什么的,怎么给后台

本文标题:生成RSA用的证书

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