tomcat7+jdk的keytool生成證書 配置https

目前只會使用jdk的keytool來生成證書。本文僅介紹這種方法。

1Windows下:

1.1 生成keystore文件及導出證書

打開控制檯:

運行:

%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

按照要求一步步的輸入信息,問你國家/地區代碼的時候,輸入cn。

輸入密碼的時候,這裏使用:changeit

最後一步讓你輸入的時候,直接回車。

具體記錄如下:

C:\Users\Administrator>%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA

輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什麼?
[Unknown]: tuhao
您的組織單位名稱是什麼?
[Unknown]: tuhaojia
您的組織名稱是什麼?
[Unknown]: fnic
您所在的城市或區域名稱是什麼?
[Unknown]: didu
您所在的省/市/自治區名稱是什麼?
[Unknown]: didu
該單位的雙字母國家/地區代碼是什麼?
[Unknown]: cn
CN=tuhao, OU=tuhaojia, O=fnic, L=didu, ST=didu, C=cn是否正確?
[否]: y

輸入 <tomcat> 的密鑰口令
(如果和密鑰庫口令相同, 按回車):

  這裏你要直接按回車。

完畢後會在當前目錄下,會產生一個:.keystore文件,將它拷貝到tomcat的bin目錄下。

從控制檯進入tomcat的bin目錄,本機環境是:D:\Tomcat7\bin>

導出證書文件:

D:\Tomcat7\bin>keytool -selfcert -alias tomcat -keystore .keystore
輸入密鑰庫口令:(此處爲上面生成證書時輸入的changeit)

D:\Tomcat7\bin>keytool -export -alias tomcat -keystore .keystore -storepass changeit -rfc -file tomcat.cer

存儲在文件 <tomcat.cer> 中的證書

此時會在D:\Tomcat7\bin>下生成tomcat.cer證書文件。將該文件發給使用者,讓他們安裝該證書,並將證書安裝在“受信任的根證書頒發機構”區域中。具體的操作步驟可以參照鐵道部12306.cn網站證書的安裝步驟。它們是一樣一樣一樣的。

 

1.2 配置tomcat

打開$CATALINA_BASE/conf/server.xml 找到“SSL HTTP/1.1 Connector” 那一塊,取消註釋並將它改成:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="changeit" 
clientAuth="false" sslProtocol="TLS" />

 

請注意,這裏我已經將tomcat的端口改成了80,相應的,https的端口我也改成了443(即默認的https端口)。

修改windows機器的host文件,增加一行(我的機器的ip是192.168.68.75):

192.168.68.75 tuhao

 接下來重啓tomcat,用https://tuhao/訪問網站驗證一下就行了。

 

 

 

接下來將演示linux下配置tomcat的https。

 

2.linux下設置:

2.1生成keystore文件及導出證書

這一步和在windows下操作差不多,只是環境變量的引用方式不一樣,並且,這次我們指定生成的文件存儲的目錄:

 

[root@localhost ~]# $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore /usr/local/tomcat/bin/.keystore
輸入keystore密碼: 
再次輸入新密碼: 
您的名字與姓氏是什麼?
[Unknown]: tuhao.com
您的組織單位名稱是什麼?
[Unknown]: tuhaojia
您的組織名稱是什麼?
[Unknown]: fnic
您所在的城市或區域名稱是什麼?
[Unknown]: didu
您所在的州或省份名稱是什麼?
[Unknown]: didu
該單位的兩字母國家代碼是什麼
[Unknown]: cn
CN=tuhao.com, OU=tuhaojia, O=fnic, L=didu, ST=didu, C=cn 正確嗎?
[否]: y

輸入<tomcat>的主密碼
(如果和 keystore 密碼相同,按回車):

在這裏直接敲回車


[root@localhost ~]# cd /usr/local/tomcat/bin/
[root@localhost bin]# keytool -selfcert -alias tomcat -keystore .keystore
輸入keystore密碼: 
[root@localhost bin]# keytool -export -alias tomcat -keystore .keystore -storepass changeit -rfc -file tomcat.cer
保存在文件中的認證 <tomcat.cer>

 

將 /usr/local/tomcat/bin/tomcat.cer拷貝到本地。

2.2 配置tomcat:

這一步和windows一樣,我就直接把windows的那部分拷貝過來了:

打開$CATALINA_BASE/conf/server.xml 找到“SSL HTTP/1.1 Connector” 那一塊,取消註釋並將它改成:

<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"
keystoreFile="bin/.keystore" keystorePass="changeit" 
clientAuth="false" sslProtocol="TLS" />

 

請注意,這裏我已經將tomcat的端口改成了80,相應的,https的端口我也改成了443(即默認的https端口)。

接下來是要設置防火牆,我試過增加tcp的443端口,允許訪問,但是外面依然無法訪問這臺服務器的https,乾脆我將iptables服務停止掉,這樣就可以了。

驗證是否配置成功:

重啓tomcat,修改windows機器的host文件,增加一行(linux機器的ip是192.168.68.74):

192.168.68.74 tuhao.com

然後安裝tomcat.cer,注意,一定要安裝在“受信任的根證書頒發機構”這個區域裏。

通過瀏覽器訪問:https://tuhao.com/ 就可以看到https被認爲是可信的了。

 

總結:

生成證書的時候,“您的名字與姓氏是什麼”  一定要注意輸入你的ip、機器名、域名,總之,你希望以後通過https://xx來訪問你的網站的話,此處就要填寫xx。否則,會有證書不受信的提示。

 

發佈了5 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章