2010-03-02 90 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