SSL介绍
SSL, 或者Secure Socket Layer
![](/icons/81672dou.gif)
是
![](/icons/81672yi.gif)
种允许web浏览器和web服务器通过
![](/icons/81672yi.gif)
个安全
![](/icons/81672de.gif)
连接进行交流
![](/icons/81672de.gif)
技术
![](/icons/81672dou2.gif)
这意味着将被发送
![](/icons/81672de.gif)
数据在
![](/icons/81672yi.gif)
端被翻译成密码
![](/icons/81672dou.gif)
传送出去
![](/icons/81672dou.gif)
然后在另
![](/icons/81672yi.gif)
端解开密码
![](/icons/81672dou.gif)
再进行处理
![](/icons/81672dou2.gif)
这是
![](/icons/81672yi.gif)
个双向
![](/icons/81672de.gif)
过程
![](/icons/81672dou.gif)
也就是浏览器和服务器都需要在发送数据的前对它们进行加密
![](/icons/81672dou2.gif)
SSL协定
![](/icons/81672de.gif)
另
![](/icons/81672yi.gif)
个重要方面是认证(Authentication)
![](/icons/81672dou2.gif)
这就是说
![](/icons/81672dou.gif)
在你开始试图通过
![](/icons/81672yi.gif)
个安全连接和
![](/icons/81672yi.gif)
个web服务器交流
![](/icons/81672de.gif)
时候
![](/icons/81672dou.gif)
这个服务器会要求你
![](/icons/81672de.gif)
浏览器出示
![](/icons/81672yi.gif)
组证件
![](/icons/81672dou.gif)
通过“鉴定”
![](/icons/81672de.gif)
方式来证明这就是你所声明
![](/icons/81672de.gif)
网站WebSite
![](/icons/81672dou2.gif)
在某些情况下
![](/icons/81672dou.gif)
服务器还会要求你
![](/icons/81672de.gif)
web浏览器
![](/icons/81672de.gif)
认证书
![](/icons/81672dou.gif)
证明你就是你所说
![](/icons/81672de.gif)
那个人
![](/icons/81672dou2.gif)
这就是所知
![](/icons/81672de.gif)
“客户认证”
![](/icons/81672dou.gif)
尽管实际情况中
![](/icons/81672dou.gif)
更多地用在商务-对-商务(B2B)交易
![](/icons/81672dou.gif)
而不是对个人用户
![](/icons/81672dou2.gif)
但大多数有SSL功能
![](/icons/81672de.gif)
web服务器不要求客户认证(Client Authentication)
![](/icons/81672dou2.gif)
证书
为了能实施SSL
![](/icons/81672dou.gif)
![](/icons/81672yi.gif)
个web服务器对每个接受安全连接
![](/icons/81672de.gif)
外部接口(IP 地址)必须要有相应
![](/icons/81672de.gif)
证书(Cert
![](/icons/81672if.gif)
icate)
![](/icons/81672dou2.gif)
有关这个设计
![](/icons/81672de.gif)
理论是
![](/icons/81672yi.gif)
个服务器必须提供某种合理
![](/icons/81672de.gif)
保证以证明这个服务器
![](/icons/81672de.gif)
主人就是你所认为
![](/icons/81672de.gif)
那个人
![](/icons/81672dou2.gif)
这个证书要陈述和这个网站WebSite相关联
![](/icons/81672de.gif)
公司
![](/icons/81672dou.gif)
以及这个网站WebSite
![](/icons/81672de.gif)
所有者或系统管理员
![](/icons/81672de.gif)
![](/icons/81672yi.gif)
些基本联系信息
![](/icons/81672dou2.gif)
这个证书由所有人以密码方式签字
![](/icons/81672dou.gif)
其他人非常难伪造
![](/icons/81672dou2.gif)
对于进行电子商务(e-commerce)
![](/icons/81672de.gif)
网站WebSite
![](/icons/81672dou.gif)
或其他身份认证至关重要
![](/icons/81672de.gif)
任何商业交易
![](/icons/81672dou.gif)
认证书要向大家所熟知
![](/icons/81672de.gif)
认证权威(Cert
![](/icons/81672if.gif)
icate Authority (CA))如VeriSign或Thawte来购买
![](/icons/81672dou2.gif)
这样
![](/icons/81672de.gif)
证书可用电子技术证明属实
![](/icons/81672dou2.gif)
实际上
![](/icons/81672dou.gif)
认证权威单位会担保它发出
![](/icons/81672de.gif)
认证书
![](/icons/81672de.gif)
真实性
![](/icons/81672dou.gif)
如果你信任发出认证书
![](/icons/81672de.gif)
认证权威单位
![](/icons/81672de.gif)
话
![](/icons/81672dou.gif)
你就可以相信这个认证书是有效
![](/icons/81672de.gif)
![](/icons/81672dou2.gif)
在许多情况下
![](/icons/81672dou.gif)
认证并不是真正使人担忧
![](/icons/81672de.gif)
事
![](/icons/81672dou2.gif)
系统管理员或许只想要保证被服务器传送和接收
![](/icons/81672de.gif)
数据是秘密
![](/icons/81672de.gif)
![](/icons/81672dou.gif)
不会被连接线上
![](/icons/81672de.gif)
偷窃者盗窃到
![](/icons/81672dou2.gif)
庆幸
![](/icons/81672de.gif)
是
![](/icons/81672dou.gif)
Java提供相对简单
![](/icons/81672de.gif)
被称为keytool
![](/icons/81672de.gif)
命令行工具
![](/icons/81672dou.gif)
可以简单地产生“自己签名”
![](/icons/81672de.gif)
证书
![](/icons/81672dou2.gif)
自己签名
![](/icons/81672de.gif)
证书只是用户产生
![](/icons/81672de.gif)
证书
![](/icons/81672dou.gif)
没有正式在大家所熟知
![](/icons/81672de.gif)
认证权威那里注册过
![](/icons/81672dou.gif)
因此不能确保它
![](/icons/81672de.gif)
真实性
![](/icons/81672dou2.gif)
但却能保证数据传输
![](/icons/81672de.gif)
安全性
![](/icons/81672dou2.gif)
认证也许很重要
![](/icons/81672dou.gif)
也许不重要
![](/icons/81672dou.gif)
完全决定于网站WebSite
![](/icons/81672de.gif)
需要
![](/icons/81672dou2.gif)
用Tomcat来配置SSL主要有下面这么两大步骤:
![](/icons/81672yi.gif)
、生成证书
1、 在命令行下执行:
%Java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
在此命令中
![](/icons/81672dou.gif)
keytool是JDK自带
![](/icons/81672de.gif)
产生证书
![](/icons/81672de.gif)
工具
![](/icons/81672dou2.gif)
把RSA运算法则作为主要安全运算法则
![](/icons/81672dou.gif)
这保证了和其它服务器和组件
![](/icons/81672de.gif)
兼容性
![](/icons/81672dou2.gif)
这个命令会在用户
![](/icons/81672de.gif)
home directory产生
![](/icons/81672yi.gif)
个叫做" .keystore "
![](/icons/81672de.gif)
新文件
![](/icons/81672dou2.gif)
在执行后
![](/icons/81672dou.gif)
你首先被要求出示keystore密码
![](/icons/81672dou2.gif)
Tomcat使用
![](/icons/81672de.gif)
默认密码是" changeit "(全都是小写字母)
![](/icons/81672dou.gif)
如果你愿意
![](/icons/81672dou.gif)
你可以指定你自己
![](/icons/81672de.gif)
密码
![](/icons/81672dou2.gif)
你还需要在server.xml配置文件里指定自己
![](/icons/81672de.gif)
密码
![](/icons/81672dou.gif)
这在以后会有描述
![](/icons/81672dou2.gif)
2、 你会被要求出示有关这个认证书
![](/icons/81672de.gif)
![](/icons/81672yi.gif)
般性信息
![](/icons/81672dou.gif)
如公司
![](/icons/81672dou.gif)
联系人名称
![](/icons/81672dou.gif)
等等
![](/icons/81672dou2.gif)
这些信息会显示给那些试图访问你
![](/icons/81672chengxu.gif)
里安全网页
![](/icons/81672de.gif)
用户
![](/icons/81672dou.gif)
以确保这里提供
![](/icons/81672de.gif)
信息和他们期望
![](/icons/81672de.gif)
相对应
![](/icons/81672dou2.gif)
3、 你会被要求出示密钥(key)密码
![](/icons/81672dou.gif)
也就是这个认证书所特有
![](/icons/81672de.gif)
密码(和其它
![](/icons/81672de.gif)
储存在同
![](/icons/81672yi.gif)
个keystore文件里
![](/icons/81672de.gif)
认证书区别)
![](/icons/81672dou2.gif)
你必须在这里使用和keystore密码相同
![](/icons/81672de.gif)
密码
![](/icons/81672dou2.gif)
(目前
![](/icons/81672dou.gif)
keytool会提示你按ENTER键会自动帮你做这些)
![](/icons/81672dou2.gif)
如果
![](/icons/81672yi.gif)
切顺利
![](/icons/81672dou.gif)
你现在就拥有了
![](/icons/81672yi.gif)
个可以被你
![](/icons/81672de.gif)
服务器使用
![](/icons/81672de.gif)
有认证书
![](/icons/81672de.gif)
keystore文件
![](/icons/81672dou2.gif)
2、配置tomcat
第 2个大步骤是把secure
![](/icons/81672socket.gif)
配置在$CATALINA_HOME/conf/server.xml文件里
![](/icons/81672dou2.gif)
$CATALINA_HOME代表安装Tomcat
![](/icons/81672de.gif)
目录
![](/icons/81672dou2.gif)
![](/icons/81672yi.gif)
个例子是SSL连接器
![](/icons/81672de.gif)
<Connector>元素被包括在和Tomcat
![](/icons/81672yi.gif)
起安装
![](/icons/81672de.gif)
缺省server.xml文件里
![](/icons/81672dou2.gif)
它看起来象是这样:
$CATALINA_HOME/conf/server.xml
<-- Define a SSL Coyote HTTP/1.1 Connector _disibledevent="123456")
![](/icons/81672dou2.gif)
有关其它各种选项
![](/icons/81672de.gif)
详细信息
![](/icons/81672dou.gif)
可查阅Server Configuration Reference
![](/icons/81672dou2.gif)
在完成这些配置更改后
![](/icons/81672dou.gif)
必须象重新启动Tomcat
![](/icons/81672dou.gif)
然后你就可以通过SSL访问Tomcat支持
![](/icons/81672de.gif)
任何web应用
![](/icons/81672chengxu.gif)
![](/icons/81672dou2.gif)
只不过指令需要像下面这样:
http://localhost:8443