Apache TomEE(和Tomcat)的自签名证书
可能在大多數(shù)Java EE項目中,您將擁有具有SSL支持( https )的部分或整個系統(tǒng),因此瀏覽器和服務(wù)器可以通過安全連接進行通信。 這意味著在處理數(shù)據(jù)之前,已發(fā)送的數(shù)據(jù)已加密,傳輸并最終解密。
問題在于,有時官方的“密鑰庫”僅可用于生產(chǎn)環(huán)境,而不能在開發(fā)/測試機器中使用。 然后,一個可能的步驟是由團隊的一個成員創(chuàng)建一個非官方的“密鑰庫” ,并將其共享給所有成員,以便每個人都可以使用https在本地進行測試,并且對于測試/ QA環(huán)境也是如此。
但是使用這種方法會遇到一個問題,那就是,當您要運行該應(yīng)用程序時,您會收到一條警告/錯誤消息,表明證書不受信任。 您可以忍受這一點,但是我們可以做得更好,并通過創(chuàng)建自簽名SSL證書來避免這種情況。
在本文中,我們將了解如何使用自簽名證書在Apache TomEE (和Tomcat )中創(chuàng)建和啟用SSL 。
首先要做的是安裝openssl。 此步驟將取決于您的操作系統(tǒng)。 就我而言,我使用Ubuntu 14.04運行。
然后,我們需要使用Triple-DES算法生成1024位RSA私鑰并以PEM格式存儲。 我將使用{userhome} / certs目錄生成所有必需的資源,但是可以毫無問題地對其進行更改。
生成私鑰
openssl genrsa -des3 -out server.key 1024在這里,我們必須引入一個密碼,在這個示例中,我將使用apachetomee (請在生產(chǎn)中不要這樣做)。
產(chǎn)生企業(yè)社會責任
下一步是生成CSR (證書簽名請求)。 理想情況下,將生成此文件并將其發(fā)送給Thawte或Verisign等證書頒發(fā)機構(gòu),后者將驗證身份。 但是在本例中,我們將使用先前的私鑰對CSR進行自簽名。
openssl req -new -key server.key -out server.csr提示之一是“公用名(例如,服務(wù)器FQDN或您的姓名)”。 重要的是,要使用SSL保護的服務(wù)器的標準域名必須填寫此字段。 對于開發(fā)機,您可以設(shè)置“ localhost”。
現(xiàn)在已經(jīng)有了私鑰和csr,我們可以通過運行以下命令來生成有效期為一年的X.509自簽名證書:
生成自簽名證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt要在Apache TomEE (和Tomcat)中安裝證書,我們需要使用密鑰庫。 該密鑰庫是使用keytool命令生成的。 要使用此工具,證書應(yīng)為PKCS12證書。 因此,我們將使用openssl通過運行以下命令將證書轉(zhuǎn)換為PKCS12格式:
準備Apache TomEE
openssl pkcs12 -export -in server.crt -inkey server.key -out server.p12 -name test_server -caname root_ca 我們差不多完成了,現(xiàn)在我們只需要創(chuàng)建密鑰庫。 與所有其他資源一樣,我已使用相同的密碼來保護密鑰庫,這是
阿帕切米 。
現(xiàn)在,我們在{userhome} / certs中創(chuàng)建了一個keystore.jks文件。
將密鑰庫安裝到Apache TomEE中
在http://tomcat.apache.org/tomcat-8.0-doc/ssl-howto.html中描述了將密鑰庫安裝到Apache TomEE (和Tomcat)中的過程。 但總而言之,唯一要做的是打開$ {TOMEE_HOME} /config/server.xml并定義SSL連接器。
<Service name="Catalina"><Connector port="8443" protocol="HTTP/1.1"maxThreads="150" SSLEnabled="true" scheme="https" secure="true"keystoreFile="${user.home}/certs/keystore.jks" keystorePass="apachetomee"clientAuth="false" sslProtocol="TLS" /> </Service>請注意,在我的案例中,您需要設(shè)置密鑰庫位置{userhome} /certs/keystore.jks以及用于打開名為apachetomee的密鑰庫的密碼。
準備瀏覽器
在啟動服務(wù)器之前,我們需要在瀏覽器中將server.crt添加為有效的Authorities。
在Firefox中: Firefox首選項->高級->查看證書->權(quán)限(選項卡),然后導入server.crt文件。
在Chrome中:設(shè)置-> HTTPS / SSL->管理證書…->權(quán)限(標簽),然后導入server.crt文件。
現(xiàn)在,您可以啟動Apache TomEE (或Tomcat)了,可以使用https和端口8443導航到任何已部署的應(yīng)用程序。
就是這樣,現(xiàn)在我們可以運行測試(使用Selenium ),而不必擔心不受信任的證書警告。
翻譯自: https://www.javacodegeeks.com/2015/01/self-signed-certificate-for-apache-tomee-and-tomcat.html
總結(jié)
以上是生活随笔為你收集整理的Apache TomEE(和Tomcat)的自签名证书的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 研究Java 9 Money and C
- 下一篇: Apache Mesos:编写您自己的分