REST服務安全-雙向認證

Ready!發表於2017-04-28

1.

建立伺服器金鑰,其金鑰庫為 d:/mykeys/server.ks,注意keypass和storepass保持一致,它們分別代表 金鑰密碼和金鑰庫密碼,注意 CN=localhost 中,localhost表示要配置SSL的主機名,不能任意指定

D:/mykeys>keytool -genkey -v -alias serverKey -dname "CN=localhost" -keyalg RSA -keypass rwm258 -keystore server.ks -storepass rwm258

 

2.

建立客戶端金鑰,其金鑰庫為 d:/mykeys/client.p12,注意這個金鑰庫的字尾名,注意金鑰庫型別PKCS12

D:/mykeys>keytool -genkey -v -alias clientKey -dname "CN=SomeOne" -keyalg RSA -keypass lyl147 -keystore client.p12 -storepass lyl147 -storetype PKCS12

 

3.

將客戶端金鑰匯出為證書檔案

D:/mykeys>keytool -export -alias clientKey -file clientKey.cer -keystore client.p12 -storepass lyl147 -storetype PKCS12

 

4.

將上述客戶端金鑰檔案匯入伺服器證書庫,並設定為信任證書;注意會問你是否信任該證書,回答 y 即可

D:/mykeys>keytool -import -v -alias clientKey -file clientKey.cer -keystore server.ks -storepass rwm258

 

5.

為了在本機瀏覽器中進行SSL訪問,請:雙擊 d:/mykeys/client.p12 ,將啟動證書嚮導

 

6.

配置TOMCAT伺服器,以支援SSL認證,編輯檔案:%tomcat_home%/conf/server.xml,下面這段配置程式碼本來是被遮蔽的,現在請取消其遮蔽,並相應增加金鑰庫的配置,其中clientAuth="true" 用以啟動雙向認證,否則,只有客戶端認證伺服器-單向

 

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="true" sslProtocol="TLS" keystoreFile="D:/mykeys/server.ks" keystorePass="rwm258" truststoreFile="D:/mykeys/server.ks " truststorePass=" rwm258" />

 

7.

web.xml

	<security-constraint>
	    <web-resource-collection>
	        <web-resource-name>secure REST</web-resource-name>
	        <url-pattern>/REST/*</url-pattern>
	    </web-resource-collection>
	    <user-data-constraint>
	        <transport-guarantee>CONFIDENTIAL</transport-guarantee>
	    </user-data-constraint>
	</security-constraint>

 

 

8.  

啟動 TOMCAT,然後在IE瀏覽器中訪問:https://localhost:8443/

 

相關文章