通过JDK自带的keytool工具能够生成属于自己的证书。
在window环境下:
以管理员的身份运行cmd.exe,切换到Tomcat的安装目录下(如G:Tomcat 8.0),执行命令
keytool -genkey -alias casserver -keypass demosso -keyalg RSA -keystore casserver.keystore -validity 365
执行后可以看到目录下生成了casserver.keystore文件,
-alias 指定别名为casserver;
-keyalg指定RSA算法;
-keypass 指定私钥密码;
-keystore 指定密钥文件名称为casserver.keystore;
-validity 指定证书有效期为365天。
继续执行命令:
keytool -export -alias casserver -storepass demosso -file casserver.cer -keystore casserver.keystore
执行后可以看到目录下生成了casserver.cer文件,
-alias 指定别名为casserver;
-storepass 指定私钥为demosso;
-file 指定导出证书的文件名为casserver.cer;
-keystore 指定之前生成的密钥文件的文件名。
继续执行命令:
keytool -import -trustcacerts -alias casserver-storepass demosso -file casserver.cer –keystore cacerts
执行后可以看到目录下生成了cacerts文件。
接下来打开Tomcat目录下的conf文件,里面有一个server.xml文件,编辑它,找到被注释的这一段:
<!-- <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> -->
修改为:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" keystoreFile="/casserver.keystore" keystorePass="demosso" truststoreFile="/cacerts" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
重新启动Tomcat,打开https://localhost:8443/
看到:
就代表配置成功了,点击继续浏览此网站:
看到Tomcat的主页。
为什么会提示证书存在问题呢?因为Tomcat使用的证书是我们自己用keytool工具生成的,对于浏览器来说,我们自己生成的证书是不被信任的,在实际生产中,我们要向被信任的组织申请证书,使用那些被信任组织的证书就不会出现这个提示了。