关于SSL登陆的实现

原创 2004年08月09日 11:51:00

主程序如下:

public static void main(String strArgv[])
        throws Exception
    {
        X509TrustManager xtm = new MyTrustManager();
        TrustManager mytm[] =
            {xtm};
        SSLContext ctx = SSLContext.getInstance("SSL");
        ctx.init(null,mytm,null);
        SSLSocketFactory sf = ctx.getSocketFactory();

       URL url = new URL("yourhttpssite");
       HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
       connection.setSSLSocketFactory(sf);
       connection.setHostnameVerifier(new MyVerified());
       connection.setDoOutput(true);
           BufferedReader in
           = new BufferedReader(new InputStreamReader(connection.getInputStream()));
//       BufferedReader in
//    = new BufferedReader(new InputStreamReader(url.openStream()));
       String line;
       while ((line = in.readLine()) != null) {
           System.out.println(line);
       }
       in.close();
   }

 

------------------------MyTrustManager.java------------------------------------

package com.netutel.ubisp.util;
import javax.net.ssl.*;
import java.net.*;
import java.security.cert.*;
import java.security.cert.CertificateException;

public class MyTrustManager implements X509TrustManager {
    MyTrustManager() { // constructor
        // create/load keystore
    }

    public void checkClientTrusted(X509Certificate chain[], String authType)
        throws CertificateException {
    }

    public void checkServerTrusted(X509Certificate chain[], String authType)
        throws CertificateException {
        // special handling such as poping dialog boxes
    }
    public X509Certificate[] getAcceptedIssuers() {
        return null;
    }
}


-----------------------------MyVerified.java----------------------------------------
package com.netutel.ubisp.util;
import java.net.*;
import java.io.*;
import java.util.*;
import java.io.*;
import java.net.*;
import javax.net.ssl.*;

public class MyVerified implements HostnameVerifier {
    public boolean verify(String hostname, SSLSession session) {
        return true;
    }
}

 

关键在最后一个类HostnameVerifier

具体的文章可以翻看网络的文章

JAVA实现SSL身份登录

本部分包含下列主题: JSSE 和 WebLogic Server使用 JNDI 身份验证SSL 证书身份验证开发环境编写使用 SSL 的应用程序SSL 客户端代码示例 ...
  • liaojianbiao
  • liaojianbiao
  • 2013年12月02日 15:19
  • 3224

SSL设置免密登录

一:SSL基本介绍ssh是secure shell的缩写,是建立在应用层和传输层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性的协议。利用ssh协议可以有效地防止远程管理过程中的信息泄露问...
  • u011654631
  • u011654631
  • 2017年04月01日 14:16
  • 906

shiro实现SSL登陆

个人主页,技术杂谈原文链接考虑项目安全需求,将http请求转为https,项目中已集成的shiro框架已实现SSL登陆,来看下具体实现吧。tomcat的server.xml文件配置。将http的808...
  • chen1218chen
  • chen1218chen
  • 2017年06月20日 09:28
  • 160

SSL协议的分析和实现

1引言      SSL是一种在客户端和服务器端之间建立安全通道的协议。SSL一经提出,就在Internet上得到广泛的应用。SSL最常用来保护Web的安全。为了保护存有敏感信息Web的服务器的安...
  • ghevinn
  • ghevinn
  • 2013年10月10日 11:55
  • 5006

ssl,ftp远程登录

最近觉得命令行真是一个好东西,有了命令行,就可以一语中的,又快又便捷,爱上命令行就像爱上了快捷键。 拿今天做的一些操作做例子: 1. 安装ftp服务器 sudo apt-get install vsf...
  • lihy0118
  • lihy0118
  • 2017年01月22日 15:26
  • 260

本地模拟实现ssl访问网站

下面的测试是使用iis6.1做的,本来也想iis5做个出来的,搞了好久还是没搞好 1.chu...
  • cjsyr_cjsyr
  • cjsyr_cjsyr
  • 2014年11月21日 16:22
  • 1799

Webmin下SSL登录设置

webmin太过强大,但是安全隐患也很大,但是对瞬间
  • kevinkristoffer
  • kevinkristoffer
  • 2014年08月20日 00:19
  • 600

Linux下实现免密登录

Linux下实现免密登录 1.Linux下生成密钥    ssh-keygen的命令手册,通过”man ssh-keygen“命令:      通过命令”ssh-keygen -t rsa...
  • h348592532
  • h348592532
  • 2017年10月26日 11:34
  • 405

Linux命令行下登录ssl加密的ftp

http://imysql.com/2008_10_23_ssl_ftp_client_under_linux 由于某些BT的需求,把ftp的服务端改成ssl加密的,而标准的linux ftp客户端...
  • caolaosanahnu
  • caolaosanahnu
  • 2013年03月05日 15:39
  • 2422

利用openssl实现SSL安全通讯协议(一)

OpenSSL是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言,具备了跨系统的性能。调用OpenSSL的函数就可以实现一个SSL加密的安全数据传输通道,从而保护客户端和服务器之间数据的...
  • anda0109
  • anda0109
  • 2014年11月17日 15:33
  • 6417
收藏助手
不良信息举报
您举报文章:关于SSL登陆的实现
举报原因:
原因补充:

(最多只允许输入30个字)