您的位置:首页 > 理论基础 > 计算机网络

java发https请求,证书配置

2010-09-02 21:25 507 查看
配证书:

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
您的名字与姓氏是什么?
[Unknown]: localhost
您的组织单位名称是什么?
[Unknown]: huawei

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

该单位的两字母国家代码是什么
[Unknown]: 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.com
URL 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 dos = new DataOutputStream(connection.getOutputStream());
// byte[] rr = new byte[dos.size()];
// dos.write(rr,0,rr.length);
// dos.flush();
// String ss = new String(rr);
// System.out.println("2-----"+ss);

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());
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: