四、https连接器 明白了互联网上的加密原理之后,下面来看看浏览器与服务器交互时,浏览器想将数据加密后再发送给服务器,那么该怎么做呢?服务器首先要向浏览器出示一份数字证书,浏览器看到数字证书后,就可以使用数字证书里面的公钥加密数据,所以要想做浏览器和服务器的加密数据传输,那么首先得针对服务器生成一份数字证书。然后再配置一下服务器,让服务器收到浏览器的请求之后,会向浏览器出示它的数字证书。 4.1、生成Tomcat服务器的数字证书 SUN公司提供了制作证书的工具keytool, 在JDK 1.4以后的版本中都包含了这一工具,它的位置为<JAVA_HOME>\bin\keytool.exe 1 keytool -genkey -alias tomcat -keyalg RSA
使用keytool生成一个名字为tomcat的证书,存放在.keystore这个密钥库中 命令执行完之后,操作系统的用户文件夹下面就会生成一个.keystore文件,如下图所示: 使用命令:keytool -list -keystore .keystore查看.keystore密钥库里面的所有证书 4.2、配置https连接器 将生成的.keystore密钥库文件拷贝到Tomcat服务器的conf目录下,如下图所示: 修改server.xml文件,配置https连接器,代码如下: 1 <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol"2 maxThreads="150" SSLEnabled="true" scheme="https" secure="true"3 clientAuth="false" sslProtocol="TLS" 4 keystoreFile="conf/.keystore" keystorePass="123456"/>
在server.xml文件中配置了一个端口是8443的加密连接器,浏览器访问8443端口的连接器时,将会以加密的方式来访问web服务器,这个连接器收到浏览器的请求后,将会向浏览器出示一份数字证书,浏览器再用数字证书里面的公钥来加密数据,keystoreFile="conf/.keystore" 用来指明密钥库文件的所在路径,服务器从密钥库中提取证书时需要密码,keystorePass="123456"指明密钥库的访问密码。 使用"https://localhost:8443/"访问8443的加密连接器 由于密钥库里面的证书是我们手工生成的,没有经过CA的认证,所以使用"https://localhost:8443/"访问8443的加密连接器,浏览器会出现"证书错误,导航已阻止",浏览器认为当前要访问的这个主机是不安全的,不推荐继续访问,点击 ![]() 就可以继续访问了,如下图所示: 4.3、安装数字证书 为了让浏览器信任我们生成的数字证书,需要将数字证书安装到浏览器中,以IE8浏览器为例进行证书安装说明,安装步骤如下: 证书安装成功后,重启IE浏览器,使用"https://localhost:8443/"访问8443的加密连接器,此时浏览器就不再提示证书错误了,如下图所示: 4.4、删除数字证书 以IE8为例进行说明,操作步骤如下:工具----->Internet选项 删除之后重启浏览器即可
|