zoukankan      html  css  js  c++  java
  • RSA密钥的生成与配置

    1.首先需要在计算机上面安装openssl

      openssl下载

    2.通过openssl工具生成RSA的公钥和私钥(opnssl工具可在互联网中下载到)

    1)生成RSA私钥(需要把解压出来的openssl文件夹放在C盘根目录)
      打开bin文件夹下面的openssl.exe,敲入
      genrsa -out D://deploy/CA/rsa_private_key.pem 1024,并回车
      得到生成成功的结果

    此时,我们可以在D://deploy/CA/文件夹中看到一个文件名为rsa_private_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN RSA PRIVATE KEY-----开头,-----END RSA PRIVATE KEY-----结尾的没有换行的字符串,这个就是原始的私钥。

    2)把RSA私钥转换成PKCS8格式

      输入命令pkcs8 -topk8 -inform PEM -in D://deploy/CA/rsa_private_key.pem -outform PEM -nocrypt -out D://deploy/CA/rsa_private_key_pkcs8.pem,并回车,生成的文件为私钥转PKCS8格式的私钥

    3)生成公钥
      输入命令rsa -in D://deploy/CA/rsa_private_key.pem -pubout -out D://deploy/CA/rsa_public_key.pem,并回车,
      得到生成成功的结果

    此时,我们可以在D://deploy/CA/文件夹中看到一个文件名为rsa_public_key.pem的文件,用记事本方式打开它,可以看到-----BEGIN PUBLIC KEY-----开头,
    -----END PUBLIC KEY-----结尾的没有换行的字符串,这个就是公钥。

    把rsa公钥和私钥配置到接口中
    1) 整理公钥和私钥的格式
      a) Java与.Net开发语言
    ◆商户的私钥
      1、必须保证只有一行文字,即,没有回车、换行、空格等
      2、去掉“-----BEGIN RSA PRIVATE KEY-----”、“-----END RSA PRIVATE KEY-----”,只保存这两条文字之中的部分
    ◆商户的公钥
      1、必须保证只有一行文字,即,没有回车、换行、空格等
      2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
      3、保存到一个临时的记事本中,再打开b.alipay.com,并用要绑定密钥的支付宝账号登录,找到“获取PID、KEY”的按钮
      4、根据http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9里的步骤上传RSA公钥,即刚才保存在临时记事本中的那串字符串。

    ◆支付宝公钥
      1、必须保证只有一行文字,即,没有回车、换行、空格等
      2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
      a) Php开发语言
    ◆商户的私钥
      1、必须保证只有一行文字,即,没有回车、换行、空格等
      2、不需要对刚生成的(原始的)私钥做pkcs8编码,即不需要使用到PKCS8格式的私钥
      3、不需要去掉去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”
      简言之,只要维持刚生成出来的私钥的内容即可。
    ◆商户的公钥
      1、必须保证只有一行文字,即,没有回车、换行、空格等
      2、去掉“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”,只保存这两条文字之中的部分
      3、保存到一个临时的记事本中,再打开b.alipay.com,并用要绑定密钥的支付宝账号登录,找到“获取PID、KEY”的按钮
      4、根据http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9里的步骤上传RSA公钥,即刚才保存在临时记事本中的那串字符串。
    ◆支付宝公钥
      1、必须保证只有一行文字,即,没有回车、换行、空格等
      2、须保留“-----BEGIN PUBLIC KEY-----”、“-----END PUBLIC KEY-----”这两条文字。
      简言之,支付宝公钥只需要维持原样即可。
    2) 把公钥上传给支付宝
      操作流程见:http://help.alipay.com/support/help_detail.htm?help_id=243726&sh=Y&tab=null&info_type=9
    3) 从支付宝那获得支付宝公钥
      此处公钥由技术支持提供,请找技术支持索要支付宝公钥文件。
    4) 把私钥、支付宝公钥配置到支付宝接口中
      a) Java与。Net开发语言
      打开代码示例中config配置文件,分别在参数private_key、public_key中填写好商户的私钥、支付宝的公钥即可
      b) Php开发语言
      打开代码实例中的key文件夹,
      方法一:
      分别打开rsa_private_key.pem私钥文件、alipay_public_key.pem支付宝公钥文件,按照“()”注释内容填写并保存
      方法二:
      按照1)b)整理后的私钥文件和公钥文件重新命名为“rsa_private_key.pem”、“alipay_public_key.pem”,直接覆盖key文件夹中的这两个文件即可。

    PHP的RSA配置常见问题:
    ●PHP开发语言的代码示例中openssl文件夹中的3个DLL文件用法

      1、如果你的系统是windows系统,且system32文件目录下没有libeay32.dll、ssleay32.dll这两个文件
      那么需要拷贝这两个文件到system32文件目录。

      2、如果您的php安装目录下(phpext)中没有php_openssl.dll

      那么请把php_openssl.dll放在这个文件夹中

    参考文档:http://help.alipay.com/support/help_detail.htm?help_id=253654&sh=Y&tab=null&info_type=9

  • 相关阅读:
    OGG实时同步Oracle数据到Kafka实施文档(供flink流式计算)
    Oracle exp导出加where指定条件
    oracle merge into的用法
    Oracle列转行函数LISTAGG() WITHIN GROUP ()的使用方法
    sql怎样查一个存储过程被谁调用
    Oracle JOB间隔时间详解
    如何在ORACLE下创建JOB,并且赋予ID号?
    DOS下查看进程对应的文件路径
    查询系统中运行的JOB
    plsql中书写一个简单的存储过程
  • 原文地址:https://www.cnblogs.com/lvk618/p/4726086.html
Copyright © 2011-2022 走看看