2012-01-01 114 views
5

我想讓web應用程序可以從java中的https訪問。我是這個領域的新手。我從一些博客讀到,通過製作某種證書來識別身份可以使它成爲可能。是否有任何網站提供免費證書?我可以有任何博客或網站參考。如何使Web應用程序可以通過https訪問java

謝謝

+3

如何配置SSL將取決於您正在使用的網絡服務器(例如Tomcat,Apache)。您可以使用自簽名證書,但您的用戶將收到關於證書的警告。您將需要從受信任的CA(證書頒發機構)購買證書。 – jordanm 2012-01-01 16:48:35

+0

由於您可以使用免費服務獲取有效證書,因此無需購買。以下是如何使用Let's Encrypt服務的Java特定說明:https://vaadin.com/blog/-/blogs/lazy-loading-with-vaadin-8 – mstahv 2017-03-20 13:19:02

回答

5

您將需要SSL證書來爲SSL應用程序提供服務。 SSL證書的問題在於它需要被瀏覽器信任,所以如果你讓人們使用這個應用程序,你需要從證書提供者那裏得到真正的SSL證書,比如Godaddy或者其他許多人。出於測試目的,您可以創建一個可以使用的「自簽名」證書,但使用瀏覽器的客戶端將收到警告,指出證書存在問題。

沒有辦法免費獲得真正的SSL證書。

我相信這個答案,你可以做出適當的谷歌查詢,讓你在路上。

+1

@ Francis:我不同意你說你的方式答案。最後,什麼是真正的SSL證書?如果你創建一個自簽名的SSL證書,並將其配置爲可信,那麼它是什麼使它不是真實的,就像你說的那樣?這是一個你信任的人的問題,誰是驗證你的權威,但恕我直言,「真實」這個詞不是好的。 – Cratylus 2012-01-02 23:12:29

10

您需要由CA(證書頒發機構)批准的SSL證書,以便您的客戶在使用您的Web應用時不會在瀏覽器中收到警告。爲了獲得這樣的證書,你通常需要向CA支付一些錢。但是,出於測試目的,您可以使用自簽名證書。

您可以生成一個自簽名證書並將其放到您的服務器上。稍後,您可以用真正的證書替換它。如果您已經擁有真正的證書,請跳至我的答案的第2步。用於生成自簽名證書的方法不同,但基本上你必須做到以下幾點(抽象):

1.生成一個自簽名證書:

您可以使用多種工具和方案,這一點,但不知何故,我發現最流行的方式,生成自簽名的證書有:

一)Java的密鑰工具 - http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html b)OpenSSL的 - http://www.sslshopper.com/article-most-common-openssl-commands.html

這兩種方法是絕對相等的,它是偏好的問題,你用哪一個(我用的OpenSSL)

2.把這個證書在你的servlet容器/應用服務器。

有許多servlet容器和應用程序服務器,並且即使在不同版本的服務器/容器和所選配置之間,放置證書的說明也各不相同。下面我將列出我認爲最受青少年歡迎的那些......

一)的Tomcat 7 - http://tomcat.apache.org/tomcat-7.0-doc/ssl-howto.html

B)GlassFish的 - http://artur.ejsmont.org/blog/content/how-to-generate-self-signed-ssl-certificate-for-glassfish-v3-and-import-it-into-java-keyring

C)jbossWeb(Servlet容器) - http://docs.jboss.org/jbossweb/3.0.x/ssl-howto.html

3

我意識到這是非常古老的線程,但您可以從CA(證書頒發機構)獲取名爲Let's Encrypt的免費證書。使用Certbot ACME協議客戶端(自動證書管理環境)https://certbot.eff.org/獲取證書非常簡單。客戶端需要在您的服務器中進行根訪問。

1)使用certbot的自動腳本

wget https://dl.eff.org/certbot-auto 
chmod a+x ./certbot-auto 
./certbot-auto --help 

2)獲取的許可證或者使用獨立的插件或根目錄插件安裝Cerbot。獨立打開一個小型服務器端口80或443,所以任何端口必須是免費的。 Webroot使用現有的運行服務器。對於獨立運行命令

certbot-auto certonly --standalone --standalone-supported-challenges http-01 -d yourdomain.com 

與這兩個根目錄插件和獨立插件certonly選項certbot將獲取的證書,並將其存儲在/ etc/letsencrypt /現場/。

3)讓我們的加密證書是短暫的(只有90天),所以記得要更新這些

certbot-auto renew 

4)之後,你有你的證書,則需要將其轉換爲PKCS12格式,並存儲到Java密鑰庫。

openssl pkcs12 -export -in /etc/letsencrypt/live/yourdomain.com/fullchain.pem -inkey /etc/letsencrypt/live/yourdomain.com/privkey.pem -out /etc/letsenscrypt/live/yourdomain.com/pkcs.p12 -name mytlskeyalias -passout pass:mykeypassword 

keytool -keystore /path/to/my/keystore -delete -alias ‘mytlskeyalias’ -storepass ‘mystorepassword’ 

keytool -importkeystore -deststorepass mystorepassword -destkeypass mykeypassword -destkeystore /path/to/my/keystore -srckeystore /etc/letsencrypt/live/mydomain.com/pkcs.p12 -srcstoretype PKCS12 -srcstorepass mykeypassword -alias mytlskeyalias 

所有步驟進行了更詳細的https://vaadin.com/blog/-/blogs/enabling-https-in-your-java-server-using-a-free-certificate

描述,然後按照尼古拉Yovchev對特定的servlet容器鏈接啓用SSL/TLS。

相關問題