keytool

Accept server's self-signed ssl certificate in Java client

孤街醉人 提交于 2019-11-25 21:56:45
问题 It looks like a standard question, but I couldn\'t find clear directions anywhere. I have java code trying to connect to a server with probably self-signed (or expired) certificate. The code reports the following error : [HttpMethodDirector] I/O exception (javax.net.ssl.SSLHandshakeException) caught when processing request: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path

Android签名机制介绍:生成keystore、签名、查看签名信息等方法

て烟熏妆下的殇ゞ 提交于 2019-11-25 21:25:38
Android独有的安全机制,除了权限机制外,另外一个就是签名机制了。签名机制主要用在以下两个主要场合起到其作用:升级App和权限检查。 升级App 用户在升级一款已经安装过的App时,如果程序的修改来自于同一来源,则允许升级安装,否则会提示签名不一致无法安装的提示。 权限检查 我曾在Android Permission权限机制的具体使用一文中提过,对于申请权限的 protection level 为 signature 或者 signatureOrSystem 的,会检查权限申请者和权限声明者的证书是否是一致的。 至于签名机制的原理及其他作用,此不详述,本文主要介绍,签名文件key的生成、用key去签名apk文件及查看签名的方法。 生成keystore 创建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目录下),具体做法如下: 代码如下: keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore #说明: # -genkey 产生密钥 # -alias mykey 别名 mykey # -keyalg RSA 使用RSA算法对签名加密 # -validity 40000 有效期限4000天 # -keystore demo.keystore