uniapp android私有证书的生成

一、基本概念了解

  • 1、什么是证书:证书是一个开发者的身份标志,对Android系统而言。使用一个证书签发的App,是属于同一个开发者的App,强化了App的唯一性

  • 为什么上线使用私有证书:

    • 1、举个极端的例子,如果你的应用证书泄露,那么别人可以用这个证书签名一个仿冒App,假如包名和你的包名也一样,就可以覆盖安装安卓手机上你之前的包。

    • 2、当前仅依赖证书校验是不完善的,所以主流的Android应用市场,通过实名认证开发者信息和著作权,强化了App的唯一性。也就是从主流应用市场点更新,不会发生冒充事件。但是通过其他方式安装apk,仍然会发生冒充的可能性。

    • 3、如果签名不同,即使包名相同,也无法覆盖安装。此时安卓手机会在安装时报错,需要先卸载老的版本,才能安装新版。

    • 4、共有证书存在证书签名一样被覆盖的风险,测试时可以使用,上线推荐使用私有证书。


二、共有证书生成:20201023113901994

20201023113918131

三、android私有证书生成

  • Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份。Android证书的生成是自助和免费的,不需要审批或付费。可以使用JRE环境中的keytool命令生成。以下是windows平台生成证书的方法:

  • 安装JRE环境(推荐使用JRE8环境,如已有可跳过)

    • 可从Oracle官方下载jre安装包:jre官网
      下面以安装目录为“C:\Program Files\Java\jre1.8.0_201”为例,实际操作时请修改为自己安装目录
      建议将JRE安装路径添加到系统环境变量,已配置可跳过此章节
      20201023114528949
  • 选择适合自己的版本:
    20201023114603384

  • 以下我是没有添加环境变量生成的:
    20201023114834390

    • 进入bin目录运行终端cmd:利用keytool应用生成证书:
      2020102311494191

    • 执行命令:

      keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore
      
      • testalias:证书别名,可修改为自己想设置的字符,建议使用英文字母和数字

      • test.keystore:证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径

      • 回车后会提示:

        Enter keystore password:  //输入证书文件密码,输入完成回车  
        Re-enter new password:   //再次输入证书文件密码,输入完成回车  
        What is your first and last name?  
          [Unknown]:  //输入名字和姓氏,输入完成回车  
        What is the name of your organizational unit?  
          [Unknown]:  //输入组织单位名称,输入完成回车  
        What is the name of your organization?  
          [Unknown]:  //输入组织名称,输入完成回车  
        What is the name of your City or Locality?  
          [Unknown]:  //输入城市或区域名称,输入完成回车  
        What is the name of your State or Province?  
          [Unknown]:  //输入省/市/自治区名称,输入完成回车  
        What is the two-letter country code for this unit?  
          [Unknown]:  //输入国家/地区代号(两个字母),中国为CN,输入完成回车  
        Is CN=XX, OU=XX, O=XX, L=XX, ST=XX, C=XX correct?  
          [no]:  //确认上面输入的内容是否正确,输入y,回车  
        
        Enter key password for <testalias>  
                (RETURN if same as keystore password):  //确认证书密码与证书文件密码一样(HBuilder|HBuilderX要求这两个密码一致),直接回车就可以
        
    • 查看证书信息:

      • 注意查看证书信息要证书文件可keytool.exe在同一目录下才可以使用一下命令,注意下自己把证书剪切走的

      • 可以使用以下命令查看:

        keytool -list -v -keystore test.keystore  
        Enter keystore password: //输入密码,回车
        
      • 会输出以下格式信息:

        Keystore type: PKCS12    
        Keystore provider: SUN    
        
        Your keystore contains 1 entry    
        
        Alias name: test    
        Creation date: 2019-10-28    
        Entry type: PrivateKeyEntry    
        Certificate chain length: 1    
        Certificate[1]:    
        Owner: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN    
        Issuer: CN=Tester, OU=Test, O=Test, L=HD, ST=BJ, C=CN    
        Serial number: 7dd12840    
        Valid from: Fri Jul 26 20:52:56 CST 2019 until: Sun Jul 02 20:52:56 CST 2119    
        Certificate fingerprints:    
                 MD5:  F9:F6:C8:1F:DB:AB:50:14:7D:6F:2C:4F:CE:E6:0A:A5    
                 SHA1: BB:AC:E2:2F:97:3B:18:02:E7:D6:69:A3:7A:28:EF:D2:3F:A3:68:E7    
                 SHA256: 24:11:7D:E7:36:12:BC:FE:AF:2A:6A:24:BD:04:4F:2E:33:E5:2D:41:96:5F:50:4D:74:17:7F:4F:E2:55:EB:26    
        Signature algorithm name: SHA256withRSA    
        Subject Public Key Algorithm: 2048-bit RSA key    
        Version: 3
        
        • 其中证书指纹信息(Certificate fingerprints)
          • MD5
            证书的MD5指纹信息(安全码MD5)
          • SHA1
            证书的SHA1指纹信息(安全码SHA1)
          • SHA256
            证书的SHA256指纹信息(安全码SHA245)

私有证书生成具体可以参考官网:https://ask.dcloud.net.cn/article/35777

证书的SHA1指纹信息(安全码SHA1)
- SHA256
证书的SHA256指纹信息(安全码SHA245)

私有证书生成具体可以参考官网:https://ask.dcloud.net.cn/article/35777

共有证书具体可以参考官网:https://ask.dcloud.net.cn/article/36522

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐