最近项目组要给日本客户做个产品,升级服务器交由我来升级。为了测试用,想要在自己电脑上搭个服务器。
服务器需要由https登录,并且不显示端口号。
费了些劲儿,看了n多帖子,好不容易弄好了。趁在没忘记之前,记录一下,发扬资源共享的作风。
1、首先你的有tomcat 并且好使。
我用的是apache-tomcat-6.0.10。
2、在tomcat的 conf 下面有个server.xml 文件,其中有这样一段话,就是配置ssl 的,
<!--
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" />
-->
这是段带注释的代码,把他改为如下,或者直接替换就可:
<Connector port="8443" protocol="HTTP/1.1"SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" keystoreFile="C:\tomcat.keystore" keystorePass="net" sslProtocol="TLS" />
3、制作证书(我也是头次知道https访问方式需要tomcat证书的)
进入到你的jdk文件夹的 bin下面 我的是 C:\Program Files\Java\jdk1.5.0_21\bin,因为我们需要 里面的keytool.exe 工具来制作。
生成证书命令:keytool.exe -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat.keystore (注意空格)
输入keystore密码: net
您的名字与姓氏是什么?
[Unknown]: kevin
您的组织单位名称是什么?
[Unknown]: neusoft
您的组织名称是什么?
[Unknown]: neusoft
您所在的城市或区域名称是什么?
[Unknown]: shenyang
您所在的州或省份名称是什么?
[Unknown]: liaoning
该单位的两字母国家代码是什么
[Unknown]: CN
CN=www.zm.cn, OU= sanxin, O= sanxin, L=chengdou, ST=sichuan, C=CN 正确吗?
[否]: Y
输入tomcat主密码
(如果和 keystore 密码相同,按回车):net
[注意:你的保证你的tomcat密码是 net,如果不是,你可以去tomcat 中的 conf 文件夹 tomcat-users.xml 文件中 下面去修改,格式如下:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="net"/>
<role rolename="tomcat"/>
<user username="net" password="net" roles="net"/>
<user username="tomcat" password="neteye" roles="tomcat"/>
<user username="both" password="net" roles="tomcat,net"/>
</tomcat-users>
]
这样在你的C 盘下面就看到证书tomcat.keystore 了。
4、然后你重启tomcat 就应该可以了。
5、如何去掉端口号,把上面 刚刚提到的 server.xml 中的<Connector port="8443" protocol="HTTP/1.1"SSLEnabled="true"。。。。。。。端口号 8443 改为 443 就可以了。