您的位置:首页 > 理论基础 > 计算机网络

Tomcat配置https环境(Windows+Linux)

2016-02-29 15:11 651 查看
[-]

1进入到jdk下的bin目录
2输入如下指令keytool -v -genkey -alias tomcat -keyalg RSA -keystore dtomcatkeystore
3输入keystore密码
4输入名字组织单位组织市省国家等信息
5输入之后会出现确认的提示
6输入tomcat的主密码
7进入tomcat文件夹
8在severxml中添加加载keystore的代码
9启动tomcat
10启动成功后使用https1270018443 访问页面

转自:http://blog.csdn.net/cuker919/article/details/8840221
Tomcat配置https环境(Windows+Linux)
windows下的配置主要是参考:http://blog.csdn.net/supersky07/article/details/7407523

我需要的主要还是linux下的配置,不过windows下和linux下的原理应该差不多,并且windows下讲解比较清楚,因而记录下来以便于进行对比。

Windows下Tomcat配置https环境:

(1)进入到jdk下的bin目录



(2)输入如下指令“keytool -v -genkey -alias tomcat -keyalg RSA -keystore d:/tomcat.keystore”



d:/tomcat.keystore是将生成的tomcat.keystore放到d盘根目录下。注意若要放到c盘,在win7系统下,需要以管理员身份进入到命令行中进行操作,否则是无法创建tomcat.keystore的。本例放到d盘下。

如何以管理员身份进入到命令行下呢?开始->搜索框中输入cmd->等待(注意不回车)->出现cmd.exe->右键“以管理员身份运行”即可。

解释:

keytool -genkey:自动使用默认的算法生成公钥和私钥

-alias[名称]:给证书取个别名

-keyalg:制定密钥的算法,如果需要制定密钥的长度,可以再加上keysize参数,密钥长度默认为1024位,使用DSA算法时,密钥长度必须在512到1024之间,并且是64的整数倍

-keystore:参数可以指定密钥库的名称。密钥库其实是存放迷药和证书文件,密钥库对应的文件如果不存在会自动创建。

-validity:证书的有效日期,默认是90天

-keypass changeit:不添加证书密码

-storepass changeit:不添加存储证书的密码

输入相关信息后,最后确认,便会在tomcat根目录下生成server.key文件。

(3)输入keystore密码



密码任意,此处以123456为例,要记住这个密码,之后在进行server.xml配置时需要使用。

(4)输入名字、组织单位、组织、市、省、国家等信息



(5)输入之后会出现确认的提示



此时输入y,并回车。此时创建完成keystore。

进入到D盘根目录下可以看到已经生成的tomcat.xml



(6)输入tomcat的主密码



可以直接回车,默认为同keystore的密码一样。

之后,会显示正在存储即完成。

(7)进入tomcat文件夹
找到conf目录下的sever.xml并进行编辑



将所有以<Connector port="8443" 开头的connector注释。



(8)在sever.xml中添加加载keystore的代码



注意方框中的keystore的密码,就是刚才我们设置的“123456”.

编辑完成后关闭并保存sever.xml。

(9)启动tomcat。
若出现如下错误“Keystore was tampered with,or password was incorrect”,即第(8)步设的密码出错了。请核对密码,重新编写sever.xml。



(10)启动成功后,使用https://127.0.0.1:8443 访问页面
页面成功打开即tomcat下的https配置成功。

(11)应用程序HTTP自动跳转到HTTPS

在应用程序中web.xml中加入:

<security-constraint>

<web-resource-collection >

<web-resource-name >SSL</web-resource-name>

<url-pattern>/*</url-pattern>

</web-resource-collection>

<user-data-constraint>

<transport-guarantee>CONFIDENTIAL</transport-guarantee>

</user-data-constraint>

</security-constraint>

(12)注意事项

1. 生成证书的时间,如果IE客户端所在机器的时间早于证书生效时间,或者晚于有效时间,IE会提示“该安全证书已到期或还未生效”

2.如果IE提示“安全证书上的名称无效或者与站点名称不匹配”,则是由生成证书时填写的服务器所在主机的域名“您的名字与姓氏是什么?”/“What is your first and last name?”不正确引起的

支持特定页面采用HTTPS传输,普通页面采用HTTP传输:

HTTPS相比HTTP来说,最大的好处就是安全,但是为了安全付出的代价是牺牲了性能。

所有我们需要采取控制,对特定需要https的页面采用https传输,普通页面采取http传输。

我们采用了过滤器,过滤器中的逻辑是这样子的,分为四种情况:

1.当前协议是HTTPS,当前请求的URL是需要采取HTTPS传输的URL,直接请求页面

2.当前协议是HTTPS,当前请求的URL是不需要采取HTTPS传输的URL,重定向到HTTP的端口

3.当前协议是HTTP,当前请求的URL是不需要采取HTTPS传输的URL,直接请求该页面

4.当前协议是HTTP,当前请求的URL是需要采取HTTPS传输的URL,重定向到HTTPS的端口。

Linux的参考网址:http://wenku.baidu.com/view/5f7c090016fc700abb68fc4c.html

1:安装jdk,

[root@localhost ~]# ls jdk-1_5_0_19-linux-i586.bin

jdk-1_5_0_19-linux-i586.bin

[root@localhost ~]# pwd

/root

[root@localhost ~]# chmod a+x jdk-1_5_0_19-linux-i586.bin

[root@localhost ~]# ./jdk-1_5_0_19-linux-i586.bin

在当前目录下生成jdk1.5.0_19目录。

我把它移到/usr/local目录下。

[root@localhost ~]# mv jdk1.5.0_19 /usr/local/

[root@localhost local]# ln -s jdk1.5.0_19 jdk

下面是配置路径:

[root@localhost local]# vi /etc/profile

在文件的最后加入:

export JAVA_HOME=/usr/local/jdk

export PATH=$JAVA_HOME/bin:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

然后运行如下命令使得不重启机器就生效:

[root@localhost local]# source /etc/profile

2:安装tomcat, 其实上面配置路径就是为了tomcat能正常启动, 因为tomcat启动时需要用到到jdk,

[root@localhost local]# tar zxvf apache-tomcat-5.5.26.tar.gz

[root@localhost local]# ln -s apache-tomcat-5.5.26 tomcat5.5

3:生成证书:

[root@localhost ~]# keytool -genkey -alias .keystore -keyalg RSA

Enter keystore password: hellohello

What is your first and last name?

[Unknown]: liu #这项要和你linux server的机器名一样,这样有好处!查linux server的机器名,可以用hostname命令

What is the name of your organizational unit?

[Unknown]: bea

What is the name of your organization?

[Unknown]: bea

What is the name of your City or Locality?

[Unknown]: suzhou

What is the name of your State or Province?

[Unknown]: suzhou

What is the two-letter country code for this unit?

[Unknown]: cn

Is CN=liu, OU=bea, O=bea, L=suzhou, ST=suzhou, C=cn correct?

[no]: yes

Enter key password for <.keystore>

(RETURN if same as keystore password): hellohello

尤其注意:两次输入的密码一定要一样!而且生成的.keystore的位置在~下(我用的是root,故在/root下)

[root@localhost ~]# find / -name .keystore

/root/.keystore

然后复制该文件到/usr/local/tomcat5.5下(我tomcat安装在/usr/local目录下!)

查看该文件的时候用ls -a

4:对server.xml做配置,

[root@localhost ~]# cd /usr/local/tomcat5.5/

[root@localhost tomcat5.5]# ls

bin common conf LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt server shared temp webapps work

[root@localhost tomcat5.5]# pwd

/usr/local/tomcat5.5

[root@localhost tomcat5.5]# ls -a

. .. bin common conf .keystore LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt server shared temp webapps work

[root@localhost tomcat5.5]# cd conf/

[root@localhost conf]# ls

Catalina catalina.policy catalina.properties context.xml logging.properties server-minimal.xml server.xml tomcat-users.xml web.xml

[root@localhost conf]# pwd

/usr/local/tomcat5.5/conf

[root@localhost conf]# vi server.xml

修改部分如下:

先把关于下面的注视去掉:

<Connector port="443" maxHttpHeaderSize="8192"

maxThreads="150" minSpareThreads="25" maxSpareThreads="75"

enableLookups="false" disableUploadTimeout="true"

acceptCount="100" scheme="https" secure="true"

keystoreFile="/usr/local/tomcat/.keystore"

keystorePass="hellohello"

clientAuth="false" sslProtocol="TLS"
/>

粗体是我修改的部分

4: 启动tomcat

[root@localhost conf]# cd /usr/local/tomcat5.5/

[root@localhost tomcat5.5]# ls

bin common conf LICENSE logs NOTICE RELEASE-NOTES RUNNING.txt server shared temp webapps work

[root@localhost tomcat5.5]# cd bin/

[root@localhost bin]# ls

bootstrap.jar commons-logging-api-1.1.1.jar jmxaccessor-tasks.xml shutdown.bat tomcat5w.exe version.bat

catalina.bat cpappend.bat jsvc.tar.gz shutdown.sh tomcat-juli.jar version.sh

catalina.sh digest.bat service.bat startup.bat tomcat-native.tar.gz

catalina-tasks.xml digest.sh setclasspath.bat startup.sh tool-wrapper.bat

commons-daemon.jar jkstatus-tasks.xml setclasspath.sh tomcat5.exe tool-wrapper.sh

[root@localhost bin]# pwd

/usr/local/tomcat5.5/bin

[root@localhost bin]# ./startup.sh

Using CATALINA_BASE: /usr/local/tomcat5.5

Using CATALINA_HOME: /usr/local/tomcat5.5

Using CATALINA_TMPDIR: /usr/local/tomcat5.5/temp

Using JRE_HOME: /usr/local/jdk

[root@localhost bin]# netstat -antl | grep 443

tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN

[root@localhost bin]#

这里tomcat已经启动了。

5:测试:启动浏览器
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: