在Tomcat下配置HTTPS的证书, 用户第一次访问需要下载安装证书,然后以后访问就可以以安全连接的方式访问了.配置过程首先需要使用JDK自带的keytool来生成一个keystore文件,然后从keystore文件导出一个certreq文件,然后使用该文件到www. 生成一个证书文件,再把该证书文件导入JVM就OK了.
具体配置过程如下: ( 我的参数如下: IP地址192.168.2.101,用户名是lenny,密码是123456,组织都是buaa,城市是Beijing,使用的操作系统是win7 ) 1. 打开 cmd ,生成keystore文件lenny keytool -genkey -alias lenny -keyalg RSA -keystore C:\lenny -validity 36500 -keysize 512 其中lenny是别名,可以随便取;-keyalg RSA是加密算法;-keystore C:\lenny 是生成的文件(在C盘下); -validity 36500是有效期为10年;-keysize 512生成的密钥是512位的。 ( 注意: 填写具体信息时,"名字和姓氏"一定是你的域名或IP地址,比如我在实验室没有域名,IP地址为192.168.2.101,所以我的"名字和姓氏"填写的是192.168.2.101,所以实验室的其他电脑也可以使用https访问我的Web应用程序 )
2. 使用 keytool -certreq 命令生成certreq文件 C:\serverreq keytool -certreq -keystore c:\lenny -alias lenny -file c:\serverreq
3. 从C:\lenny.文件中生成了CSR文件C:\serverreq文件, 然后使用notepad++打开c:\serverreq文件。把里面的内容复制出来,我的文件serverreq内容大概是 -----BEGIN NEW CERTIFICATE REQUEST----- 然后打开 http://www. 网站,然后在申请证书Tab里面选择 CSR 申请方式,把上述内容粘贴到文本框中,然后验证 CSR,网站会让你选择一个邮箱,然后会把内容发到你邮箱里。第一封邮件是让你确认你要申请数字证书,确认后会收到第二封邮件,把里面的内容拷贝到记事本,然后保存并把后缀名改成 .cer。我取得名字是lenny.cer。
4. 把之前生成的C:\lenny 中的密码信息导入到 C:\lenny.cer文件中 keytool -export -keystore c:\lenny -alias lenny -file C:\lenny.cer
5. 把从邮箱中拷贝出的文字生成的C:\lenny.cer文件导入到JVM。导入的方法如下: cd C:\Program Files\Java\jdk1.7.0\jre\lib\ keytool -import -keystore .\security\cacerts -alias lenny -file c:\lenny.cer ( 切记: 这一步需要输入密码,这个密码是 changeit,之前的密码都是创建keystore时的密码123456 )
6. 然后设置Tomcat根目录下面的/conf/server.xml,然后修改为 <Connector protocol="org.apache.coyote.http11.Http11Protocol"
7. 然后在网页里输入https://192.168.2.101:8443/ 就可以访问了。第一次访问的时候,还会弹出Certificate Error页面。这是可以安装证书,然后以后访问就可以使用安全连接的方式了。 ( 注意: 浏览器访问https时,第一次需要安装证书,记得把证书安装到Trusted Root(根)位置 ) |
|