`
liulanghan110
  • 浏览: 1065685 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

TOMCAT下创建HTTPS项目的方法

    博客分类:
  • JAVA
阅读更多

SSL (Secure Socket Layer - 安全套接字层 )

功能:保障在 Internet 上数据传输之安全,利用数据加密 (Encryption) 技术,确保数据在网络上之传输过程中不会被截取及窃 听,防止篡改。

 

如何让我们的 WEB 应用程序应用 SSL 安全保障? 这里有两种方法,双向认证和单项认证。

 

单项认证

客户端向服务器发送信息时,会检查服务器的证书,如果是安全证书,则向服务器发送数据,如果不是,则不发送数据。

 

双向认证

 

也就是说,首先,客户端将要认证服务器的安全性,确保访问的是正确的服务器,而非假冒的钓鱼网站;其次,服务器也要认证客户端的安全性,只有那些拥有服务器授权证书的客户端才可以访问。

 

下面来说明下如何建立单项认证和双向认证

单项SSL认证

1.打开cmd ,输入d: 回车

 

2.输入md keys 回车

 

3.输入cd keys 回车

 

4.输入

keytool -genkey -alias keytest  -keyalg RSA -keypass 123456 -storepass 123456 -keystore mykey.keystore -validity 3600


keytool命令如下:

-genkey      在用户主目录中创建一个默认文件".keystore",还会产生一个mykey的别名,mykey中包含用户的公钥、私钥和证书
-alias       产生别名
-keystore    指定密钥库的名称(产生的各类信息将不在.keystore文件中
-keyalg      指定密钥的算法   
-validity    指定创建的证书有效期多少天
-keysize     指定密钥长度
-storepass   指定密钥库的密码
-keypass     指定别名条目的密码
-dname       指定证书拥有者信息

 

注意:上面的名字与姓氏要填 网站名称,如这里的locathost,不能是IP。

 

上面的命令创建了两个东西:

 

密钥库: 名称 keytest  密钥库密码123456

 

密钥:  mykey.keystore  密码 123456

 

 

5.可以导出证书server.cer文件

keytool -export -trustcacerts -alias keytest  -file server.cer -keystore  mykey.keystore -storepass 123456

 

打开该证书文件,会有这样的信息


因为该证书是 localhost发给localhost,也就是自签名的,所以不被信任。

6.配置tomcat中conf下的server.xml文件

 

注意:据说不同的TOMCAT在此处的配置有所不同,我这里用的是tomcat-6.0.32

代码如下:

    <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" 
				port="8443"  enableLookups="true" 
				disableUploadTimeout="true" acceptCount="100" 
				maxThreads="200" scheme="https" secure="true" 
				SSLEnabled="true"  sslProtocol="TLS" 
				clientAuth="false"
				keystoreFile="D:\keys\mykey.keystore" 
				keystorePass="123456" />

 这里 clientAuth表示,服务器是否要验证客户端,由于是单向连接,所以连fasle。

keystoreFile 表示密钥地址
keystorePass 表示密钥密码

 

需要说明的是,修改TOMCAT的server.xml文件,如果是ECLIPSE中建的服务器,不会有效果,需要删除服务器重新建个服务器。

 

配置好后重启tomcat就可以访问

https://localhost:8443



 会发现提示证书错误,点击继续浏览此网站即可

 

由于此证书不被信任,所以会有上面的信息。

 

那么如何使证书受信任呢?这就需要专门的权威部门来签发给你证书。这些机构称为CA,由于CA的信息已经被集成在操作系统中了,所以这些颁发证书的CA机构是操作系统可信的。操作系统检测到证书的颁发者是可信的时候,就会信任此证书。

也可以自己充当CA机构来签发证书,该CA所签发的证书只能本机可信。过程如下:

 

1.首先将CA信息安装到操作系统,使操作系统对该CA可信。

 

   安装server.cer到操作系统,过程默认。

 

2.使用该CA来签发证书。

 

 可以使用openssl来签发数字证书,这里用的是JAVA程序来签发证书的。

 

  • 大小: 45.9 KB
  • 大小: 48.6 KB
  • 大小: 38.2 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics