相关疑难解决方法(0)

如何创建包含客户端证书链的BKS(BouncyCastle)格式Java密钥库

我正在编写一个需要SSL客户端身份验证的Android应用.我知道如何为桌面Java应用程序创建JKS密钥库,但Android仅支持BKS格式.我试图创建密钥库的每一种方式都会导致以下错误:
handling exception: javax.net.ssl.SSLHandshakeException: null cert chain

所以看起来客户端永远不会发送正确的证书链,可能是因为我没有正确创建密钥库.我无法在桌面上启用SSL调试,因此这使得它比应该更加困难.

作为参考,以下是IS用于创建BKS 信任库的命令:
keytool -importcert -v -trustcacerts -file "cacert.pem" -alias ca -keystore "mySrvTruststore.bks" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-145.jar" -storetype BKS -storepass testtest


这是我尝试过的命令,它无法创建BKS客户端密钥库:

cat clientkey.pem clientcert.pem cacert.pem > client.pem

keytool -import -v -file <(openssl x509 -in client.pem) -alias client -keystore "clientkeystore" -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath "bcprov-jdk16-145.jar" -storetype BKS -storepass testtest
Run Code Online (Sandbox Code Playgroud)

java ssl android

51
推荐指数
4
解决办法
10万
查看次数

通过JSCH(SSH)和HTTPS反向隧道

我必须实现从客户端到服务器的反向隧道.我使用以下命令使用JSCH

session.setPortForwardingR(rport, lhost, lport);
Run Code Online (Sandbox Code Playgroud)

它的工作原理(另请参阅使用JSCH Java反向SSH隧道)!

接下来我必须通过双向身份验证的HTTPS流隧道我的ssh会话:

client -> firewall -> apache https -> ssh server 

----------------------> HTTPS
====================================> SSH
---------------------->
Run Code Online (Sandbox Code Playgroud)

我在找

  1. 一小段java代码,用于将SSH封装到HTTPS中
  2. 2路HTTPS身份验证
  3. APACHE配置

解决方案:

1)HTTPS隧道

  1. JHTTPTunnel,但它基于J2ME并且它不支持SSL(另请参阅Java Http隧道,是否有用于通过HTTP发送二进制数据的Java库,HTTP隧道?)
  2. JOD,但它不支持SSL

3)APACHE CONFIGURATION

  1. 也许这个配置有效,但我必须尝试
## Load the required modules.
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so

## Listen on port 8443 (in addition to other ports like 80 or 443)
Listen 8443

<VirtualHost *:8443>

  ServerName youwebserver:8443
  DocumentRoot /some/path/maybe/not/required
  ServerAdmin admin@example.com

  ## …
Run Code Online (Sandbox Code Playgroud)

java apache ssh https http-tunneling

6
推荐指数
1
解决办法
1664
查看次数

如何在android中发送soap请求?

我是WSDL webservices的新手,使用KSoap2库在android中调用wsdl webservices.

这是我的soap请求转储

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:loy="http://loyalcard.com/LoyalCardWebService/">;
   <soapenv:Header/>
   <soapenv:Body>
      <loy:GetOffersByLocation>
         <!--Optional:-->
         <loy:Location>
            <!--Optional:-->
            <loy:Latitude>?</loy:Latitude>
            <!--Optional:-->
            <loy:Longitude>?</loy:Longitude>
         </loy:Location>
      </loy:GetOffersByLocation>
   </soapenv:Body>
</soapenv:Envelope>
Run Code Online (Sandbox Code Playgroud)

我正在传递这个SopaObject,如:

 PropertyInfo latitude = new PropertyInfo();
        latitude.name="Latitude";
        latitude.type=Double.class;
        latitude.setValue(32.806673);

   PropertyInfo longitude = new PropertyInfo();
        longitude.name="Longitude";
        longitude.type=Double.class;
        longitude.setValue(-86.791133);

        SoapObject results = null;
        String methodName = "OffersByLocation";
        String actionName = "http://loyalcard.com/LoyalCardWebService/GetOffersByLocation";
        SoapObject request = new SoapObject(NAMESPACE,methodName);

        request.addProperty(latitude);
        request.addProperty(longitude);
Run Code Online (Sandbox Code Playgroud)

这里将纬度和经度值直接传递给OffersByLocation,我应该通过元素Location.请任何人都可以帮助如何通过位置传递参数.

我已尝试过以上程序,但我得到错误说

06-17 11:52:55.934: WARN/System.err(350): SoapFault - faultcode: 'soapenv:Server' faultstring: 'org.apache.axis2.databinding.ADBException: Unexpected subelement Latitude' faultactor: 'null' detail: org.kxml2.kdom.Node@44f6ddc0
Run Code Online (Sandbox Code Playgroud)

请任何人告诉我如何在Soap对象中传递上面的SOAP Request转储?

此致,Srinivas

android android-ksoap2

5
推荐指数
1
解决办法
1万
查看次数

如何使用.key和.pem文件在Android中创建套接字SSL?

我的.key文件如:----- BEGIN RSA PRIVATE KEY ----- MIIEpAIBAAKCAQEA1j6eGXbHpqigZ1K // wnuyr5v/L2jFm7dzTtHJx8ZoMQ4CbsG

我的.pem文件如:----- BEGIN CERTIFICATE ----- MIIE4zCCA8ugAwIBAgIDBOziMA0GCSqGSIb3DQEBBQUAMDwxCzAJBgNVBAYTAlVT

我不知道在这里验证了多少步骤.我只想创建一个到IP和端口的ssl套接字,并在该套接字中发送/接收数据.我试图使用键盘,但也许我不太了解它,我总是出错.

请给我一个指南或示例代码.

非常感谢.

sockets ssl android

5
推荐指数
2
解决办法
9511
查看次数

标签 统计

android ×3

java ×2

ssl ×2

android-ksoap2 ×1

apache ×1

http-tunneling ×1

https ×1

sockets ×1

ssh ×1