您当前的位置:首页 > 计算机论文>计算机应用论文

带SSL的Web服务器实现与应用研究

2015-11-12 10:02 来源:学术参考网 作者:未知

摘 要:探索带SSL的Web服务器的实现方案,力图提高客户与服务器通信的安全性,使之在应用中能更加方便快捷。

关键词:SSL;创建密钥库;设计SSL服务程序
引言
  SSL能确保客户机连接到可信的服务器,并确保连接之后客户机与服务器之间的通信是安全的。SSL服务器上需要有专门的SSL服务程序和包含安全证书的密钥库。客户机通过浏览器向服务器发送SSL连接请求后,接收服务器返回的安全证书,用户可以根据安全证书的有效性决定是否连接,当用户选择连接之后,客户机和服务器之间的通信将受到加密保护。
1.程序说明
  SSL(Security Socket Link Layer Protocol)即安全套接层协议,用于在服务器上建立指定端口的HTTPS协议服务,SSL能确保客户机连接到可信的服务器,并确保连接之后客户机与服务器之间的通信是安全的。
  客户机通过浏览器向服务器发送SSL连接请求后,接收服务器返回的安全证书,用户可以根据安全证书的有效性决定是否连接,当用户选择连接之后,客户机和服务器之间的通信将受到加密保护。
  访问带SSL的Web服务器不需要专门的客户端程序,通过浏览器使用HTTPS协议即可访问;而服务器端则需要专门的服务程序以及包含安全证书的密钥库。  
2实现方案
  2.1. 创建密钥库文件
  服务器上的SSL服务程序需要使用密钥库文件(sslKeyStore),密钥库文件中包含返回给客户端的安全证书和用于加密的算法等。创建密钥库文件时需要声明在密钥库中生成证书,并指定加密算法、证书名、密钥库名、密钥库的密码、证书的密码,以及其他一些用户信息。Java只支持不对称密钥加密算法,所以只能在DSA和RSA中选择一个;证书名必须与服务器名一致(本例服务器名为bmwang);证书的密码可以与密钥库的密码相同。本例密钥库的设计如表1所示。
  表1 密钥库设计
加密算法RSA证书名bmwang密钥库名sslKeyStore密钥库的密码1234567证书的密码1234567  
  创建密钥库文件是在DOS控制台上进行的,为方便起见,制作一个批处理文件,批处理命令如下:
  c:JBuilder9jdk1.4binkeytool -genkey -v -keyalg RSA -alias bmwang -keystore sslKeyStore
  其中:
  keytool —— 调用Java JDK提供的密钥库管理工具,本例采用JBuilder自带的JDK,默认安装时路径为c:JBuilder9jdk1.4,keytool工具在bin子目录下,若安装时指定了其他的路径或采用独立发行的JDK,则修改为相应的路径。
  -genkey —— keytool工具的运行参数,要求生成密钥库。
  -v —— keytool工具的运行参数,要求生成证书。
  -keyalg RSA —— keytool工具的运行参数,指定加密算法。
  -alias bmwang —— keytool工具的运行参数,指定证书名。
  -keystore sslKeyStore —— keytool工具的运行参数,指定密钥库名。
  新建文件夹“Java”,打开记事本,输入上面的批处理命令,保存时,选择文件位置为“Java”文件夹,文件类型为“所有文件(*.*)”,文件名为“gk.bat”,文件主名可以随意,但扩展名必须是.bat。查看“Java”文件夹,其中应有“gk.bat”批处理文件。
  双击运行“gk.bat”,输入密钥库密码(1234567)以及其他一些用户信息,当系统提示“输入的主密码”即证书密码时,由于设计为与密钥库密码相同,直接按回车即可,如图1所示。
  
  图1 生成密钥库
  
  完成后,查看“Java”文件夹,看到系统生成了密钥库文件(sslKeyStore)。至此,创建密钥库文件已完成。  
  2.2 网页准备
  设计一个简单的问候网页(exHTTPS.htm),当用户信任服务器的安全证书并连接和访问服务器时,服务器向客户机发送该网页。网页代码如下:
  
     
     
      <br />       HTTPS Server Example<br />      
     
     
     

Hello, welcome here!


     
     
  打开JCreator(也可使用其他的HTML代码编辑器或可视化设计器),单击工具栏的【New】按钮,在出现的对话框上,选择Files选项卡,在该选项卡上选择HTML File选项,输入网页文件名exHTTPS,并选择工作位置为“Java”文件夹,单击【确定】后进入编辑器。
  输入上述代码,检查无误后单击工具栏的【Save】按钮保存,在Java文件夹中将出现exHTTPS.htm文件,网页制作完成。  
  2.3  设计SSL服务程序
  由于服务程序只在后台运行,不需要提供方便用户操作的图形界面,所以设计成使用DOS控制台的Application程序,并且为简化起见,程序中直接使用网页文件的文件名(exHTTPS.htm)。程序整体框架如下:
  
      import java.io.*;
      import java.net.*;
      import javax.net.ssl.*;
      import java.security.*;
      public class HTTPSServerExample
      {
        public static void main(String args[]) throws IOException
        {
        //创建SSL服务
        while(true)
        {
          try
          {
          //提供SSL服务
          }
          catch(Exception e)
          {
          System.out.println(""程序出现运行错误。"");//显示出错信息
          }
        }
        }
      }
  
  程序由引入声明和主类构成。在Java的SSL服务编程中,要用到java.net包、javax.net.ssl包和java.security包中的系统预定义类,在引入声明部分显式引入。创建SSL服务的代码、提供SSL服务可能出现运行时错误(异常,如端口不可用、找不到文件等),需要使用进行异常处理,对创建SSL服务的代码采用在代码所在的方法(main)头上声明抛出异常的方法处理,对提供SSL服务的代码采用try—catch语句处理。由于需要满足大量客户机的多次访问,提供SSL服务的代码要放在一个永久循环中,用条件为true的while语句实现
  程序整体框架中的创建SSL服务代码的编程要点如下:
* 创建SSL套接服务生成器
* 建立SSL套接服务(HTTPS连接服务)
程序整体框架中的提供SSL服务代码的编程要点如下:
* 捕捉客户机的连接请求、建立连接通道、发送证书
* 创建输入流、接收确认信息
* 创建输出流、发送网页文件
* 关闭输出流、关闭输入流、关闭连接
  打开JCreator(也可使用其他的Java代码编辑器或集成开发工具),单击工具栏的【New】按钮,在出现的对话框上,选择Files选项卡,在该选项卡上选择Java File选项,输入程序名HTTPSServerExample,并选择工作位置为“Java”文件夹,单 击【确定】后进入编辑器。
  输入前面的程序整体框架,其中的创建SSL服务代码和提供SSL服务代码按照上述的编程要点设计,全部代码输入完成并检查无误后单击工具栏的【Save】按钮保存。选择【Builde】【Compile File】菜单命令进行编译,如有错误,可按照编译提示信息进行修改,然后保存并重新编译,直到提示“Process completed”,编译成功。
  在DOS控制台进入“Java”目录后使用如下命令运行(输入时不主动换行):
  c:JBuilder9jdk1.4binjava -Djavax.net.ssl.keyStore=sslKeyStore
   -Djavax.net.ssl.keyStorePassword=1234567 HTTPSServerExample
  命令行参数中:
  -Djavax.net.ssl.keyStore=sslKeyStore —— 指定密钥库名。
  -Djavax.net.ssl.keyStorePassword —— 指定密码。
  为方便运行,可将该DOS命令做到一个批处理文件中(设为run.bat),保存在“Java”文件夹。
  SSL服务程序运行后,在IE浏览器的地址栏输入HTTPS协议名和服务器的地址访问服务器了。
3.结语
    将采用上述方案的程序嵌入网络上,客户与服务器的连接过程的安全性大大加强,而且客户端操作简单方便,当用户选择连接之后,客户机和服务器之间的通信将受到加密保护,安全性起到了很好的保驾效果。
    除了应用于一般的实时通信外,本案更适用于现在流行商务交易信息。目前网络交易普遍存在信息安全隐患,尤其是在网络上有多种方法窃取和盗取信息内容,使用户感到信息不安全问题,本系统能很好的解决客户与服务器连接过程的安全保障,从而给信息安全带来了护驾功能。   
参考文献:
.计算机研究与发展2004
相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页