前提条件:已经下载并安装配置好Tomcat,访问http://localhost:8080的时候会出现tomcat的界面。html
第一步:配置hosts文件java
添加一行127.0.0.1 codecrazy.cn。这一步不是必要的,只是为了访问的时候效果更好(逼格更高)一点。此时就能够经过http://codecrazy.cn:8080进行访问了。chrome
第二步:生成证书apache
这里采用JDK自带的keytool工具来生成。浏览器
如上图所示,输入红框中的命令:tomcat
E:\Java\bin>keytool -genkey -alias tomcat -keyalg RSA -keysize 1024 -keypass changeit -validity 365 -keystore e:\sms\tomcat.keystore -storepass changeit
以后须要填写几个问题,最后一个问题填入‘y’并回车。安全
执行上述命令以后会在e:\sms下面生成一个tomcat.keystore文件,-keystore选项指定存储位置和文件名。若是不指定的话会默认在用户的主目录下生成一个“.keystore”文件,-storepass指定存储密码。 -keypass指定的库密码,这2个密码不须要同样。
具体keytool的用法请参见:http://www.micmiu.com/lang/java/keytool-start-guide/网络
注意事项:“您的名字与姓氏是什么?”这个问题我写的是“codecrazy.cn”,实践代表这个地方要填你访问网站时的域名。我这里填的是codecrazy.cn。若是没配置hosts文件,而是经过localhost来访问网站,那就填localhost。剩下的几个问题貌似随便填也没什么关系。ide
第三步:生成证书以后再配置tomcat的conf目录下的server.xml文件工具
<!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the BIO implementation that requires the JSSE style configuration. When using the APR/native implementation, the OpenSSL style configuration is required as described in the APR/native documentation --> <Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" keystoreFile="E:\sms\tomcat.keystore" keystorePass="changeit" clientAuth="false" sslProtocol="TLS" />
port=8443这个Connector的配置初始状况下是注释掉的,去掉注释,并添加上述的一些属性配置。其中keystoreFile填的就是以前用keytool生成的tomcat.keystore文件的路径,keystorePass就是以前keytool命令中-storepass选项中指定的值。
对于protocol有多种配置方法,如是否启用apr的方式,不一样的方式有不一样的配置,具体能够参考官方文档http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html
这里我采用Http11Protocol,它采用的是BIO的方式处理网络链接请求。至于bio,nio,apr三种方式的区别是什么不在本文讨论之列。
而后启动tomcat,在启动过程输出的信息中能够看到多了一个监听在8443端口上的链接处理器,以下图所示:
在中间那一行出现了[“http-bio-8443”]这就是用来处理https安全链接的处理器的名字。8443表明的是在Connector中port指定的值,能够配置成其余的,生产环境中显然是配置成默认的443端口。”http-bio-8443”中间的“bio”是由于咱们上面配置的是org.apache.coyote.http11.Http11Protocol,它采用的就是bio的方式来处理网络链接请求。(最前面的“http”感受输出“https”比较合适一点)
此时经过https://codecrazy.cn:8443访问tomcat仍是没有创建安全的链接,由于浏览器中并无安装证书,https的原理以及如何经过CA认证等不在本文讨论之列。本文采用的是一种叫作自签名证书的方法。
第四步:经过keytool工具来从keystore中导出证书来提供给浏览器使用
-keysotre选项指定的就是以前用keytool生成的keystore文件的路径, -file选项指定的就是导出证书的文件路径,具体如何使用请参见上文提供的使用keytool工具的连接。命令执行完以后就会在e:\sms\目录下面生成一个tomcat.crt的文件。
第五步:将该文件导入到浏览器中
不一样的浏览器会有略有差异。对于chrome浏览器来讲,在地址栏输入chrome://settings/进入设置界面,再点击最下面的“显示高级设置”而后往下找到
点击“管理证书”,*切换到以下图红框所示“受信任的根证书颁发机构”* tab页
点击导入,再点击下一步,选择“浏览”找到咱们上面生成的tomcat.crt文件,而后一路“下一步”,最后完成。
至此大功告成。输入https://codecrazy.cn:8443便可创建https链接。效果以下所示:
地址栏https前面再也不是红叉了,而是变成了绿色的,说明已经创建了安全链接。整个过程当中有任何疑问,欢迎留言讨论。