IOS证书和Android签名统一管理方案

背景

由于在工作中经常需要管理多台机器的ios证书及android签名,假设全部都是手动来操作完成,那将耗费大量时间,本文旨在提供一种较为完整的方案来方便快捷的管理多台机器的ios证书及android签名。

IOS证书管理

IOS证书管理分为命令行安装,描述文件解析&安装,证书过期时间预警等基础功能

IOS证书命令行安装方式(security)

首先介绍证书管理的基础-安装,通过security命令进行p12证书的安装
安装命令:

sudo security import [p12证书文件所在路径] -k /Library/Keychains/System.keychain -P [p12证书安装密钥] -T /usr/bin/codesign

安装命令解析,上述命令主要把证书安装在系统下,需要sudo权限,并且 -T 设定 /usr/bin/codesign是有权限使用该证书的,如果想把证书安装在登录下,请使用如下两条命令

security unlock-keychain -p  [登录用户密码] /Users/[用户名]/Library/Keychains/login.keychain

security import [p12证书文件所在路径] -k /Users/[用户名]/Library/Keychains/login.keychain -P [p12证书安装密钥] -T /usr/bin/codesign

多台机器同时安装p12 + 授权文件脚本:

  #!/bin/bash
 
 #同局域网多台机器ip,机器之前预先设置互信+免密登录
 mac_arr=(A,B,C,D)
 
 CODESIGN_FILE_NAME=$1
 PROVISION_FILE_NAME=$2
 CODESIGN_PASSWORD=$3
 
 #安装provision file
 open ${PROVISION_FILE_NAME}
 
 sudo security import ${CODESIGN_FILE_NAME} -k /Library/Keychains/System.keychain -P ${CODESIGN_PASSWORD} -T /usr/bin/codesign

 for var in ${mac_arr[@]};
 do
     #先拷贝必要的证书和provision file到指定机器的指定目录
     scp ${CODESIGN_FILE_NAME} [登录用户名]@xxx.xxx.xxx.${var}:/Users/[登录用户名]/codeSignFile
     scp ${PROVISION_FILE_NAME} [登录用户名]@xxx.xxx.xxx.${var}:/Users/[登录用户名]/codeSignFile
     ssh [登录用户名]@xxx.xxx.xxx.${var} "cd /Users/[登录用户名]/codeSignFile && open ${PROVISION_FILE_NAME} && sudo security import ${CODESIGN_FILE_NAME} -k /Library/      Keychains/System.keychain -P ${CODESIGN_PASSWORD}   -T /usr/bin/codesign"  #双引号里面加入想要执行的命令
 done

解析描述文件获取AppId, 证书信息,过期时间

通过获取证书信息+过期时间等,可以用来校验证书是否已经装上,证书是否即将过期等功能,需要的可自行设计实现

解析命令

security cms -D -i [描述文件] > [输出plist文件]

MAC中描述文件被安装在如下目录:
/Users/[登录用户名]/Library/MobileDevice/Provisioning Profiles
重点关注如下几个项的内容:

<key>application-identifier</key> //对应app bundle id
<key>ExpirationDate</key> //证书过期时间
<key>Name</key> //证书文件名
<key>UUID</key>  //UUID是授权文件安装在目录的文件名UUID.mobileprovision

获取登录/系统keychain下所有已安装的证书

命令如下:

security find-identity -v codesigning /Users/[登录用户名]/Library/Keychains/login.keychain

删除登录/系统keychain下已安装的证书

命令如下:

security delete-certificate -Z SHA1

注:将SHA1替换成证书的sha1,sha1的值,可以通过find-identity命令看到,它是一个40位的随即字符串

Android证书管理

Android的证书管理起来就比较方便,主要是统一生成,并且方便提供给同事MD5,SHA-1,别名等相关信息

Android证书命令行生成方式

使用keytool命令生成keystore签名

keytool -genkey -alias [别名] -keyalg RSA -validity 40000 -storepass  [密钥] -keypass  [密钥]  -dname "CN=xx,OU=xx,O=xx,L=xx,ST=xx,C=86"   -keystore [生成文件名]

获取签名MD5,SHA-1,别名等信息命令

keytool -list -storepass  [密钥]  -v -keystore  [签名文件名] | grep 'SHA1'
keytool -list -storepass  [密钥]  -v -keystore  [签名文件名] | grep 'MD5'
keytool -list -storepass  [密钥]  -v -keystore  [签名文件名] | grep '别名'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,539评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,737评论 4 61
  • 紫藤为长寿树种,民间极喜种植,成年的植株茎蔓蜿延屈曲,开花繁多,串串花序悬挂于绿叶藤蔓之间,瘦长的荚果迎风摇曳,自...
    4caf41720d9d阅读 3,408评论 0 0
  • 中国有句老话叫“穷生奸计,富长良心”。 穷与富不仅仅指的是金钱多少,更深层次的是指一个人有多大的智慧去控制金钱。越...
    whoogaoqiao阅读 1,648评论 0 0
  • 如果你的英文还不错可以来这里自己查看所有的快捷键大全(当然也可以自定义修改): 如果你懒得看,下面这些足够你在开发...
    SunnyLeong阅读 14,954评论 0 29

友情链接更多精彩内容