2010-03-02 99 views
16

我想在Grails中實現SSL。我在Grails文件夾結構中找不到文件/conf/server.xml。有沒有人實現過它?SSL,Tomcat和Grails

任何幫助,非常感謝。

回答

12

您可以運行grails run-app -https而不是grails run-app,它將爲您創建一個自簽名證書並以SSL運行。

+0

嗨Burt, 謝謝,但我已經創建了一個使用Java keytool的自簽名證書。 在未來,我必須使用有效的和Veri簽名的SSL。 – WaZ 2010-03-02 17:06:38

+4

稍微糾正一下,我相信它是'grails run-app -https'。文檔:http://grails.org/doc/2.2.0/ref/Command%20Line/run-app.html – arcdegree 2013-02-05 00:23:32

+0

是的,自2010年以來它已經改變:) – 2013-02-05 03:07:26

11

如何設置這取決於你如何部署你的grails應用程序。

如果您要部署到像tomcat這樣的容器,請像平常一樣安裝和配置SSL。然後建立一個grails war的戰爭檔案,並正常部署。特別是對於Tomcat中,打開頂層tomcat的server.xml中並添加SSL連接器,像這樣:

<Connector port="8443" maxHttpHeaderSize="8192" 
    maxThreads="150" minSpareThreads="25" maxSpareThreads="75" 
    enableLookups="false" disableUploadTimeout="true" 
    acceptCount="100" scheme="https" secure="true" 
    clientAuth="false" sslProtocol="TLS" 
    SSLEngine="on" 
    SSLCertificateFile="/path/to/cert.pem" 
    SSLCertificateKeyFile="/path/to/key.pem" 
    SSLPassword="passphrase" 
    /> 

調整連接器端口443,直接在默認端口上接受SSL請求。然後將你的war文件放到webapps文件夾中。

對於嵌入式開發服務器(jetty),使用keytool將您的證書導入到密鑰存儲中,並將其放入ssl/keystore下的grails工作目錄中。這看起來像$ HOME/.grails/1.2.1/ssl/keystore。密鑰庫密碼必須是「123456」。然後用grails run-app --https運行grails。如果它不存在,Grails將創建密鑰庫文件,但如果用自己的文件替換它,則不會覆蓋它。

+0

ataylor, 感謝您的回覆。我一直忙着在當地的JBoss上工作Grails。一旦我得到這個位排序,我將使用SSL。如果您有任何使用GRAILS與JBoss的經驗,請分享。 高度讚賞, WB – WaZ 2010-03-04 08:59:55

+0

嗨,我們有xx.key和xx.crt文件。這些可以用來代替pem嗎? – 2015-05-08 09:10:49