https连接器
明白了互联网上的加密原理之后,下面来看看浏览器与服务器交互时,浏览器想将数据加密后再发送给服务器,那么该怎么做呢?服务器首先要向浏览器出示一份数字证书,浏览器看到数字证书后,就可以使用数字证书里面的公钥加密数据,所以要想做浏览器和服务器的加密数据传输,那么首先得针对服务器生成一份数字证书。然后再配置一下服务器,让服务器收到浏览器的请求之后,会向浏览器出示它的数字证书。
1. 生成Tomcat服务器的数字证书
SUN公司提供了制作证书的工具keytool,在JDK 1.4以后的版本中都包含了这一工具,它的位置为:JDKbin目录下的keytool.exe。按照下图提示使用keytool工具生成一个名字为tomcat的证书,存放在.keystore这个密钥库中。
命令执行完之后,操作系统的用户文件夹下面就会生成一个.keystore文件。使用命令
keytool –list –keystore .keystore查看.keystore密钥库里的所有证书。
2.配置https连接器
将生成的.keystore密钥库文件拷贝到Tomcat服务器的conf目录下,修改server.xml文件,配置https连接器,如下:
在server.xml文件中配置了一个端口是8443的加密连接器,浏览器访问8443端口的连接器时,将会以加密的方式来访问web服务器,这个连接器收到浏览器的请求后,将会向浏览器出示一份数字证书,浏览器再用数字证书里面的公钥来加密数据,keystoreFile="conf/.keystore"用来指明密钥库文件的所在路径,服务器从密钥库中提取证书时需要密码,keystorePass="040412235"指明密钥库的访问密码。
使用"https://localhost:8443/"访问8443的加密连接器。
由于密钥库里面的证书是我们手工生成的,没有经过CA的认证,所以使用"https://localhost:8443/"访问8443的加密连接器,浏览器会出现"证书错误,导航已阻止",浏览器认为当前要访问的这个主机是不安全的,不推荐继续访问,点击高级,添加例外就可以访问了。出现如下图的结果:
3. 安装数字证书
为了让浏览器信任我们生成的数字证书,需要将数字证书安装到浏览器中,不同的浏览器安装数字证书的过程是不同的,可以根据自己的浏览器百度一下安装数字证书的方式。证书安装成功后,重启浏览器,使用"https://localhost:8443/"访问8443的加密连接器,此时浏览器就不再提示证书错误了。
领取专属 10元无门槛券
私享最新 技术干货