请高手进,帮我讲解下ssl单向登录的原理吧

我做了个SSl登录,tomcat配置好了,用了struts,在登陆页面上能显示小锁头,现在的问题是,当我填写了信息发送到后台的时候,信息在网络上传输的已经是加密的了吗,我在后台取这些东西的时候该怎么取,直接从struts的from中取行吗?谢谢回答
[b]问题补充:[/b]
额,简单的说我就是想我登录的信息在网络上传输的时候是加过密的,不希望被人截取,你的意思是说如果没有通过SSL就不能到达登录的页面吗?
[b]问题补充:[/b]
我只做了服务器的证书,如下
生成密钥
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore -validity 365

导出证书
keytool -export -trustcacerts -alias tomcat -file server.cer -keystore server.keystore -storepass changeit

导出到jvm里
keytool -import -trustcacerts -alias tomcat -file server.cer -keystore "%JAVA_HOME%/jre/lib/security/cacerts" -storepass changeit

如果只做单向认证的登录,也就是不用确认客户端是谁,也要生成客户端证书吗?
[b]问题补充:[/b]
恩,谢谢了

问个白痴的问题,也就是说用了ssl的话客户端信任了证书后,在网路上传输的数据到web服务器都是加密了的吗?这个一直没搞懂

yalucas我看是开源的,商用的话会收费吗?
[b]问题补充:[/b]
使用yalucas必须启动它给的server才行啊
[b]问题补充:[/b]
我的意思是如果我有个项目要用这个东西,就要还启动这个服务器哈
[b]问题补充:[/b]
用到项目里完全没反应了,- -!大概是一些参数配错了,完全不懂那几个参数的意思,大哥有不有例子直接发份个给我吧,谢谢了
[b]问题补充:[/b]
我没用msn,请发到我邮箱吧ququjioulai@163.com,谢谢了

7个回答

给你的邮件已发送。

以下收件人已自动保存到联系人中:
ququjioulai@163.com (已保存为ququjioulai)

请查收!!

简单的说,是想在通过SSL验证以后,跳转到一个ACTION里面将证书里面的用户名取出来,不通过SSL就不能访问。或者通过SSL验证才能到登录页面,不通过SSL就不能到登录页面

我是用的开源 YaleCAS
web.xml:
[code="java"]<?xml version="1.0" encoding="UTF-8"?>
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

<filter>
    <filter-name>CASFilter</filter-name>
    <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
    <init-param>
        <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
        <param-value>https://eagle.hgeagle.com:8443/cas/login</param-value>
        <!--  <param-value>https://localhost:8443/cas/login</param-value> -->
    </init-param><!--这里的server是服务端的IP-->
    <init-param>
        <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
        <param-value>https://eagle.hgeagle.com:8443/cas/proxyValidate</param-value>
    </init-param><!--这里的serName是服务端的主机名 8443,而且必须是 myEagle-->
    <init-param>
      <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
      <param-value>eagle.hgeagle.com:8001</param-value><!--client:port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP和port-->
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CASFilter</filter-name>
    <url-pattern>/*</url-pattern><!--这里的设置是针对servlets-examples的,针对jsp-examples设置为/*-->
</filter-mapping>

<servlet>
    <servlet-name>RequestInfo</servlet-name>
    <servlet-class>com.beyondbit.httpservlet.util.RequestInfoServlet</servlet-class>
</servlet>[/code]

你生成了安全证书没(自制的)?
[code="java"]tomcat 的版本为jakarta-tomcat-5.0.28.exe 在Tomcat 5.5 里面配置出现了问题。
在tomcat中配置cas:
启动cmd:进入tomcat目录
1、生成服务端密匙
keytool -genkey -alias casserver -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore
2、生成服务端证书
keytool -export -alias casserver -storepass changeit -file server.cer -keystore server.keystore
命令执行后生成一个server.cer的证书文件
3、生成客户端密匙,执行以下命令
keytool -genkey -alias casclient -keyalg RSA -keypass changeit -storepass changeit -keystore client.keystore
4、生成客户端证书,执行以下命令
keytool -export -alias casclient -storepass changeit -file client.cer -keystore client.keystore
命令执行后生成一个client.cer的证书文件
5、导入证书文件到cacerts 文件中,执行以下命令
keytool -import -trustcacerts -alias server -file server.cer -keystore cacerts -storepass changeit
keytool -import -trustcacerts -alias client -file client.cer -keystore cacerts -storepass changeit
6、把cacerts文件,拷贝到\jre\lib\security目录下

注意:生成的客户端和服务端的证书要 通过IE安装,成为受信用的。
把server.cer client.cer 拉进IE浏览器就可以设置了。
7、拷贝cas-server-3.0.6.zip包内的target目录下的cas.war文件到Tomcat目录下的webapps目录下
8、修改Tomcat的配置文件server.xml把以下补注释的内容打开
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:/Tomcat 6.0/server.keystore"
keystorePass="changeit"/>
9、使用Tomcat的例子examples来做客户端
10、打开项目中的web.xml文件,加入以下配置信息

CASFilter

edu.yale.its.tp.cas.client.filter.CASFilter



edu.yale.its.tp.cas.client.filter.loginUrl

https://localhost:8443/cas/login



edu.yale.its.tp.cas.client.filter.validateUrl


https://localhost:8443/cas/proxyValidate




edu.yale.its.tp.cas.client.filter.serverName

localhost:8080



CASFilter
/* //过滤需要验证的页面

11、拷贝cas-client-java-2.1.1.zip包中的casclient.jar到项目的lib目录下
现在可以启动Tomcat来测试一下是否能够进入到登录页
comcat服务器启动正常,输入密码跟用户名要相同!
12.怎么获得登陆的用户名和密码
在过滤的里面添加参数

edu.yale.its.tp.cas.client.filter.wrapRequest
true

<%String username=request.getRemoteUser();%>
恭喜你<%=username %>成功登陆了——!!!?
[/code]

单向的SSL,只需要服务端证书。你的tomcat用户名和密码是tomcat/changeit吗?
验证时,
[code="java"]



edu.yale.its.tp.cas.client.filter.validateUrl





https://localhost:8443/cas/proxyValidate









edu.yale.its.tp.cas.client.filter.serverName



localhost:8080







CASFilter

/* //过滤需要验证的页面

[/code]
只需要过滤相关的页面。

安全证书,自己做测试时,自制的,如果商用的话,可以找专职证书CA公司的,CA即证书管理机构,受委托发放数字证书的第三方组织或公司。数字证书是用来建立数字签名和公-私(pub.)

自己启动呀,把cas.war(8.99M)放在F:\Tomcat 5.5\webapps

我传给你,我的MSN: realize8@hotmail.com

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问