最近看了一下sPRing security相關知識點,尤其是https的實現(xiàn),由此引發(fā)了幾個關聯(lián)問題。 1.如何在本地實現(xiàn)https通信.tomcat需要配置什么,瀏覽器需要配置什么。(開發(fā)測試階段tomcat一般安裝在本地) 2.當使用maven的tomcat插件時實現(xiàn)https通信的配置其實和第一個類似,需要解決的問題時怎么加載外在的tomcat配置文件從而覆蓋tomcat插件的配置文件,因為我們需要修改tomcat的server.xml文件才能實現(xiàn)https通信. 相關書籍推薦: 【Spring實戰(zhàn)】中第9章保護web應用的內容, 【java核心技術 卷2】中第9章安全章節(jié)的內容 谷歌也是一位好老師,看到一篇文章覺得不錯,謝謝網(wǎng)友的分享. 鏈接
補充: 對于自簽名的證書,就是未知機構頒發(fā)的證書訪問時也許仍然會出現(xiàn)你的連接不安全的警告,這是因為你的證書是自簽名的,我們可以通過忽略該提示直接進行訪問。 火狐瀏覽器:
自簽名證書
在網(wǎng)站使用自簽名的證書時,點擊 “連接不安全” 錯誤頁面上的 高級,你會看到如下錯誤信息: 由于證書是自簽名,所以不可信。
缺省狀態(tài)下,由未知機構頒發(fā)的自簽名證書不被信任。自簽名證書可以保證數(shù)據(jù)不被監(jiān)聽,但是卻未告知數(shù)據(jù)的接收方是誰。對于不公開的內部網(wǎng),這不是問題,此時你可以忽略該警告信息。 繞過該警告 警告: 絕不要為流行網(wǎng)站或金融交易網(wǎng)站添加證書例外——無效的證書此時意味者連接被第三方破壞。
如果網(wǎng)站允許,你可以添加例外以便能夠在證書缺省不被信任的情況下訪問該網(wǎng)站:
在警告頁,點擊 高級。點擊 添加例外…。 添加安全例外 對話框會出現(xiàn)。閱讀該網(wǎng)站對問題的描述。你還可以點擊 顯示… 來詳細審查不被信任的證書。如果你確信可以相信該網(wǎng)站,請點擊 確認安全例外 。IE,Chrome瀏覽器同理直接跳過警告即可訪問.
maven中tomcat插件如何實現(xiàn)https通信.
<!-- Main configuration for embedded Tomcat --> <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <additionalConfigFilesDir>${project.build.directory}/${tomcat.conf.dir.name}</additionalConfigFilesDir> <!-- See the configuration in the keytool-maven-plugin --> <keystorePass>broadleaf</keystorePass> <keystoreFile>${webappDirectory}/WEB-INF/blc-example.keystore</keystoreFile> <!-- Set within each project --> <port>${httpPort}</port> <httpsPort>${httpsPort}</httpsPort> <path>${path}</path> </configuration> <dependencies> <dependency> <groupId>MySQL</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.26</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jdbc</artifactId> <version>7.0.30</version> <type>jar</type> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> <type>jar</type> </dependency> </dependencies> </plugin>重點關注KeystorePass,KeystoreFile標簽,這兩個標簽分別配置了Keystore的密碼和Keystore文件位置.
生成Keystore如果不是內置的tomcat我們可以使用jdk中bin目錄下的keytool工具來生成證書,對于內置的tomcat我們可以使用一個maven插件,keytool-maven-plugin.
<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>keytool-maven-plugin</artifactId> <version>1.5</version> <executions> <execution> <phase>generate-resources</phase> <id>generateKeyPair</id> <goals> <goal>generateKeyPair</goal> </goals> </execution> </executions> <configuration> <keystore>${webappDirectory}/WEB-INF/blc-example.keystore</keystore> <dname>cn=localhost</dname> <keypass>broadleaf</keypass> <storepass>broadleaf</storepass> <alias>broadleaf</alias> <keyalg>RSA</keyalg> <skipIfExist>true</skipIfExist> </configuration> </plugin>我們這里的插件目標是generateKeyPair我的理解就是生成一對證書,即服務器端和客戶端。我們通過keystore指定了證書庫的文件路徑。keypass和storepass一個是服務器端證書密碼,一個是證書庫的密碼.證書庫密碼tomcat配置時有用;keyalg指定了密鑰使用的算法;alias是證書庫的別名;dname指定了證書擁有者的信息,這里是localhost。更多的keytool命令參數(shù)含義可以瀏覽下面鏈接: 點我
新聞熱點
疑難解答