gaochunhu 发表于 2013-2-3 14:15:44

java发送https请求证书问题

配证书:

Getting   Tomcat   SSL   (https)   Working
1.Create   a   certificate   keystore   containing   a   single   self-signed   certificate   by   executing   the   following   command.   Specify   a   password   value   of   "changeit ".   Note   that   this   command   creates   both   the   certificate   and   the   keystore

Windows: 进到%JAVA_HOME%\bin\目录下输入:

             keytool   -genkey   -alias   tomcat   -keyalg   RSA   -keystore   tomcat.keystore

      产生一个tomcat.keystore 文件
Unix:   $JAVA_HOME/bin/ 输入:      keytool   -genkey   -alias   tomcat   -keyalg   RSA   -keystore   tomcat.keystore

到D:\Tomcat   5.0\conf目录下输入: keytool   -genkey   -alias   tomcat   -keyalg   RSA   -keystore   tomcat.keystore
输入keystore密码:   changeit
您的名字与姓氏是什么?
    :   localhost
您的组织单位名称是什么?
    :   huawei

您的组织名称是什么?
    :   hell
您所在的城市或区域名称是什么?
    :   hangzhou
您所在的州或省份名称是什么?
    :   zhejiang

该单位的两字母国家代码是什么
    :   ch
CN=localhost,   OU=wict,   O=hell,   L=wuhan,   ST=hubei,   C=ch   正确吗?
    [否]:   y

输入 <tomcat> 的主密码
                (如果和   keystore   密码相同,按回车): 这里我按了回车
2.   Copy   the   keystore   file   to   CATALINA_HOME/conf   拷贝到tomcat的conf下
3.   Uncomment   the   "SSL   HTTP/1.1   Connector "   entry   in   $CATALINA_HOME/conf/server.xml.   Your   entry   should   look   like:
<!--   Define   a   SSL   Coyote   HTTP/1.1   Connector   on   port   8443   -->
<!---->

<Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false" sslProtocol="TLS"
               keystoreFile= "/conf/tomcat.keystore "
            truststoreFile= "/conf/tomcat.keystore "/>

      添加后保存,浏览其中输入以下地址访问tomcat首页   https://localhost:8443
4.   Copy   the   keystore   file   to   the   default   file   location   of   the   Java   Applications,   then   run   the   Java   Application。 拷贝到工程目录下,注意,直接再工程这级目录下面。

5、java代码:
public static void main(String[] args) throws Exception {//serverkeys是通过keytool生成的自己的证书   System.setProperty( "javax.net.ssl.trustStore",   "tomcat.keystore");   System.setProperty( "javax.net.ssl.trustStorePassword",   "changeit");//connect   to   https https://www.sun.comURL   url   =   new   URL( "https://localhost:8443");   HttpURLConnection   connection   =   (HttpURLConnection)   url.openConnection();   connection.setRequestMethod( "POST");   connection.setDoOutput(true);connection.setDoInput(true);System.out.println( "1--Conected to "+   connection.toString());      DataOutputStream(connection.getOutputStream());      StringBuffer   outbuff   =   new   StringBuffer();   BufferedReader   in   =   new   BufferedReader(new   InputStreamReader(connection.getInputStream()));   String   line;   while   ((line   =   in.readLine())   !=   null)   {             outbuff.append(line);   }   in.close();   System.out.println( "3---Test   : "   +   outbuff.toString());    }
页: [1]
查看完整版本: java发送https请求证书问题