Tomcat配置https環境

Tomcat配置https環境(Windows+Linux)

windows下的配置主要是參考:http://blog.csdn.net/supersky07/article/details/7407523 html

我須要的主要仍是linux下的配置,不過windows下和linux下的原理應該差很少,而且windows下講解比較清楚,於是記錄下來以便於進行對比。 linux

Windows下Tomcat配置https環境: web

(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->右鍵「以管理員身份運行」便可。 算法

解釋: apache

keytool -genkey:自動使用默認的算法生成公鑰和私鑰 bootstrap

-alias[名稱]:給證書取個別名 windows

-keyalg:制定密鑰的算法,若是須要制定密鑰的長度,能夠再加上keysize參數,密鑰長度默認爲1024位,使用DSA算法時,密鑰長度必須在512到1024之間,而且是64的整數倍 api

-keystore:參數能夠指定密鑰庫的名稱。密鑰庫實際上是存放迷藥和證書文件,密鑰庫對應的文件若是不存在會自動建立。 瀏覽器

-validity:證書的有效日期,默認是90天 tomcat

-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:測試:啓動瀏覽器
頂0踩
相關文章
相關標籤/搜索