Articles of 证书

发布版本中的Google Maps API密钥不起作用

我目前正在开发Android应用程序,我正在使用Google Maps API。 在开发人员控制台中,我添加了SHA1证书打印,然后是我的包名。 即使我使用keytool打印此SHA1证书,我也无法访问这些地图。 我做了很多搜索,但每个主题都让我得到答案,其中错误在开发人员控制台中的错误API密钥中。 但我选择了正确的SHA1,这是我的证书之一。 提前致谢 !

自动为Android客户端提供证书

我正在研究大型移动设备管理MDM解决方案,它应该支持各种平台,但当然主要是iOS和Android 3.x以上。 我们需要提供证书以允许访问VPN,Exchange和Wifi等服务。 这可以通过iOS轻松完成,因为他们的MDM api允许配置证书,因此所有MDM供应商都可以将这些配置到他们的iPhone和iPAd。 这是(至少从我的研究中)然而另一个与Android的故事,在通用谷歌Android MDM API中显然没有用于配置和安装证书的这样的function。 所以支持这一点的唯一MDM供应商是那些可以访问供应商特定API的人,如三星,HTC,摩托罗拉等。 是否真的没有在所有Android设备上安装证书的通用方法,或者只是针对MDM特定function(API调用),情况如何? 我已经看过这篇文章: 如何在Android中使用p12证书(客户端证书) 有关如何自动为不同的企业服务(如Exchange,VPN和Wifi)向Android客户端(3.x以上)提供证书的任何建议都将非常受欢迎。

Android L – 没有对等证书

我开发了一个小应用程序,使用带有自签名证书的SSL连接到我的服务器。 为了使它工作,我使用BouncyCastleProvider将我的证书加载到自定义密钥库中,并在我的自定义SSLSocketFactory中导入证书。 Everythink在android 2.3(最小sdk)到4.4.4之间运行良好。 但在android L(预览版)中,我的应用失败了: Tue Aug 12 14:34:40 BRT 2014:javax.net.ssl.SSLPeerUnverifiedException:org.apache.http.conn上的com.android.org.conscrypt.SSLNullSession.getPeerCertificates(SSLNullSession.java:104)没有对等证书。位于org.apache.http.conn.ssl.SSLSocketFactory.createSocket(SSLSocketFactory.java:388)的ssl.AbstractVerifier.verify(AbstractVerifier.java:93)org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator。 java:165)org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)atg.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)org.apache位于org.apache.http.impl.client.AbstractHttpClient的org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)中的.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) .execute(AbstractHttpClient.java:487)在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)…. 我完全不知道如何解决它。 任何帮助将非常感激。

在Android设备上生成客户端证书

我想创建一个将使用SSL客户端证书身份validation的Android应用程序。 我find了示例代码,向我展示了两个如何在Android应用程序中使用SSL客户端证书身份validation。 这对我来说很清楚。 但问题是,我想在设备上生成SSL客户端证书。 简单地说,我希望我的程序执行以下操作: 当程序安装在设备上时,应在设备上生成客户端证书(首次运行时),并将公钥指纹发送到我的服务器。 (必须在首次使用时生成证书)。 如何从我的应用程序和Android设备上生成客户端证书?

没有以前的互联网连接,无法validationAndroid自签名证书

使用SSL基础架构: 我们有一个有效的客户端/服务器设置,其中Android版本4.2和4.4的手机充当客户端,必须通过其自签名SSL证书validation服务器。 问题: 只要设备在尝试连接之前至少有一次互联网访问权限,服务器证书validation就会起作用。 但是,如果执行恢复出厂设置且设备直接连接到没有Internet连接的专用网络,则证书validation将失败。 重现行为: 出厂重置手机 无需选择连接到具有Internet访问权限的WiFi即可重新启动 尝试validation自签名SSL证书 – > FAILS 连接到带网络连接的WiFi 重新连接到原始专用网络 尝试validation自签名SSL证书 – > WORKS 从技术上讲,设备不应该需要Internet访问来validation自签名证书。 在进行任何SSL服务器validation之前,是否存在某种必须加载的黑名单? 我可以阻止这种行为吗? 创建SSL上下文: //Using a client certificate String password = “clientpass”; KeyStore keyStore = KeyStore.getInstance(“PKCS12”); InputStream is = context.getResources().openRawResource(R.raw.client); keyStore.load(is, password.toCharArray()); is.close(); KeyManagerFactory kmf = KeyManagerFactory.getInstance(“X509”); kmf.init(keyStore, password.toCharArray()); KeyManager[] keyManagers = kmf.getKeyManagers(); // Using self signed […]

Android – 通过本地HTTPS服务器的video流:SSL证书被拒绝

我需要在Android中通过本地HTTPS服务器(当然要做一些后台DRM)流式传输video。 然后,Android媒体播放器连接到本地服务器,将video内容“流式传输”到屏幕上。 这一切都适用于HTTP服务器,但只要启用SSL,video播放器就会停止。 如果我使用浏览器从我的应用程序外部连接到HTTPS服务器,我会收到一个SSL警告,我可以忽略,然后启动video播放器。 有没有办法禁用媒体播放器模块的严格证书处理? 我已经看过很多关于如何使用我自己的HTTP连接进行此操作的post,但没有关于如何为媒体播放器执行此操作。 谢谢! 更新:谷歌的’内部网证书’或’即时证书’,你会发现一些应该工作的东西。 将在明天试一试并在这里发布答案。

Bouncy Castle Keystore(BKS):java.io.IOException:密钥库的错误版本

我必须连接到基于REST的Web服务。 ( https://someurl.com/api/lookup/jobfunction/lang/EN ) 在IE或Chrome浏览器中,当我尝试访问此URL时,我获得了一个我必须信任并接受继续的证书之后我必须输入用户名和密码,然后我得到JSON响应。 同样的事情,我必须以编程方式为Android应用程序做。 尝试使用自定义EasySSLSocketFactory和EasyX509TrustManager,Didnt工作。 我收到以下错误:java.security.cert.CertPathValidatorException:找不到证书路径的信任锚。 使用BKS密钥库,请注意mykeystore.bks在执行以下命令之前是一个空文件 keytool -importcert -v -trustcacerts -file “test.crt” -alias IntermediateCA -keystore “mykeystore.bks” -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath “bcprov-jdk15on-148.jar” -storetype BKS -storepass abcd1234 keytool -list -keystore “mykeystore.bks” -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath “bcprov-jdk15on-148.jar” -storetype BKS -storepass abcd1234 MyHTTPClient.java如下所示: public class MyHttpClient extends DefaultHttpClient { final Context context; public MyHttpClient(Context context) { this.context = […]

Android 4 ICS上带有SSL客户端证书的WebView

我在Android上使用本机WebView时遇到问题。 我需要使用SSL客户端证书对站点进行身份validation。 Android WebView似乎不支持这一点。 作为一种解决方法,我使用了WebView的修改版本: https://github.com/yonekawa/webview-with-client-certificate 修改后的WebView通过将正确配置的SslSocketFactory注入标准Android WebView来工作。 这适用于Android 2.x设备。 但是,使用Android 4 ICS它不再起作用了。 SslSocketFactory仍在ICS中,但似乎它不再使用了。 所以我的问题是:有没有人成功在ICS上配置Android WebView,以便它可以使用客户端证书? 或者有其他选择吗? 我已经尝试过的: 将SSL客户端证书导入Android密钥库,只使用WebView而不进行任何修改。 这不起作用,客户端证书不随请求一起发送。 但它可以在本机浏览器中使用。 使用HttpClient自己创建SSL连接,获取站点的HTML并将其交给WebView。 这基本上有效,但是我需要拦截WebView发出的所有请求并自己处理它们。 但是,WebView不提供POST请求的数据,这使得这种方法对我来说无法使用。

从服务器HTTPS – android接收和validation证书

我通过https从我的Android客户端调用Web服务。 我必须从服务器端validation证书接收。 我怎么做 ? 目前这是我用来调用Web服务的代码。 private static String SendPost(String url, ArrayList pairs) { // url = “https://…..” errorMessage = “”; String response = “”; DefaultHttpClient hc=new DefaultHttpClient(); ResponseHandler res=new BasicResponseHandler(); HttpPost postMethod=new HttpPost(url); try { postMethod.setEntity(new UrlEncodedFormEntity(pairs)); response = hc.execute(postMethod, res); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch […]

播放商店错误“您上传了使用不安全证书签名的APK”

我正在尝试将游戏上传到Unity3D开发的Play商店。 我已经使用Unity的内置方法使用所有必需的参数签署了apk但我在尝试上传Play商店上的APK时遇到此错误 You uploaded an APK that is signed with an insecure certificate. RSA or DSA key size must be at least 2048 bits.