我想创建一个连接到服务器的应用程序.此服务器使用SSL客户端身份验证 应用程序的用户应该能够选择证书并允许使用它,就像它在浏览器应用程序中实现一样.
在浏览器应用程序中,身份验证按预期工作,因此我使用的证书是有效的.
当我尝试在我的应用程序中连接时,我收到以下错误:
javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException:
SSL handshake terminated: ssl=0x2a2d3b38:
Failure in SSL library, usually a protocol error
error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
(external/openssl/ssl/s3_pkt.c:1290 0x2a2df880:0x00000003)
Run Code Online (Sandbox Code Playgroud)
我试着按照我的实现的android文档.
这是我的示例活动的代码:
public class ClientCertificateActivity extends Activity implements
KeyChainAliasCallback {
protected static final String TAG = "CERT_TEST";
private String alias;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
choseCertificate();
LinearLayout layout = new LinearLayout(this);
Button connectToServer = new Button(this);
connectToServer.setText("Try to connect to Server");
connectToServer.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
connectToServer.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View …Run Code Online (Sandbox Code Playgroud) authentication https android ssl-certificate httpsurlconnection