簡體   English   中英

pfx證書中的Java密鑰庫

[英]Java keystore from pfx certificate

語境

我需要在Windows Server 2008的IIS 7.5(http端口80,https 443)后面放置Java應用程序服務器(http端口8080,https 8181)。

腳步

我已使用IIS ARR模塊來啟用代理,以便將某些請求路由到Java應用程序服務器。 我還為此目的創建了一些URL Rewrite規則。 使用http ,一切正常。

使用的規則指出,當請求的URL匹配模式(MyAppContextRoot.+) ,要執行的操作是Rewrite: http://localhost:8080/{R:0}

對於使用https的另一個應用程序,重寫規則為: https://localhost:8181/{R:0}

為了路由https請求,我已經讀到需要在IIS和Java之間共享同一證書的地方,因為IIS會對請求/答案進行加密/解密。 如果我錯了,請糾正我。

由於我仍處於開發階段,因此我決定共享一個自簽名證書。 我已經使用SelfSSL7創建了它,並使用keytool將其導入了Java keystore

selfSSL7 /Q /T /I "Default web site" /N cn=myDomain.com /X /F MyCertificate.pfx /W myPassword

keytool -importkeystore -srckeystore C:\myPath\MyCertificate.pfx -srcstoretype pkcs12 -srcalias my -deststoretype jks -deststorepass myPassword -destalias MyAlias

兩種證書都起作用: https://myDomain.com : https://myDomain.comhttps://myDomain.com:8181已啟動並正在運行,但是在嘗試路由時,出現錯誤:

502 - Web server received an invalid response while acting as a gateway or proxy server.

There is a problem with the page you are looking for, and it cannot be displayed. When the Web server (while acting as a gateway or proxy) contacted the upstream content server, it received an invalid response from the content server.

但是,查看證書在以下方面有所不同:頒發給,頒發者,有效性,簽名算法,密鑰大小。 特別是,SelfSSL7創建的算法是sha1RSA(1024位密鑰),而keytool創建的算法是sha256RSA(2048位密鑰)。

聽起來您正在嘗試做的是反向代理設置,而不是重定向到Java服務器,在這種情況下,絕對不能直接通過IIS直接訪問Java服務器。 因此,它對於客戶端是“不可見的”(因此,您甚至不應看到帶有不同端口的其他URL)。 聽起來您的重寫規則只是重定向(不是反向代理重寫規則)。

  • 如果不需要使用SSL / TLS保護IIS和Java容器之間的連接(僅需要從外部客戶端到IIS的連接),則無需為SSL / TLS配置Java容器。 IIS將使用純HTTP成為Java容器的客戶端。

  • 如果要用SSL / TLS保護IIS和Java容器之間的連接,則需要該證書對Java容器所在的主機有效,如IIS所示。 該證書不太可能與IIS上使用的證書相同,因為IIS使用的證書是面向公眾的證書,而Java容器的證書只能用於內部使用(您可以使用自簽名證書或您自己的CA,具體取決於IIS反向代理模塊可以配置為接受哪些內容)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM