【问题标题】:SSL, Tomcat and GrailsSSL、Tomcat 和 Grails
【发布时间】:2011-01-22 19:17:58
【问题描述】:

我想在 Grails 中实现 SSL。我在 Grails 文件夹结构中找不到文件 /conf/server.xml。有人实现了吗?

非常感谢任何帮助。

【问题讨论】:

    标签: tomcat grails ssl


    【解决方案1】:

    您可以运行 grails run-app -https 而不是 grails run-app,它会为您创建一个自签名证书并在 SSL 中运行。

    【讨论】:

    • 嗨,Burt,谢谢,但我已经使用 Java keytool 创建了一个自签名证书。将来我必须使用有效且经过验证的 SSL。
    • 对此稍作修正,我相信它是'grails run-app -https'。文档:grails.org/doc/2.2.0/ref/Command%20Line/run-app.html
    • 是的,它自 2010 年以来发生了变化 :)
    • 嘿 burt.. 无论如何不使用运行应用程序这样做?
    • 另外请注意,在使用-https 选项(org.grails.plugins.tomcat.fork 的 MissingMethodException .TomcatDevelopmentRunner.loadInstance)。将插件更新到 7.0.52 或更高版本应该可以解决。见问题:jira.grails.org/browse/GRAILS-11123
    【解决方案2】:

    如何设置取决于您如何部署 grails 应用程序。

    如果您要部署到像 tomcat 这样的容器,请照常安装和配置 SSL。然后只需使用grails war 构建一个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 将创建它,但如果您将其替换为您自己的,则不会覆盖它。

    【讨论】:

    • ataylor,感谢您的回复。我一直忙于尝试在本地 JBoss 上使用 Grails。一旦我得到那个位排序,我将使用 SSL。如果您有任何使用 GRAILS 和 JBoss 的经验,请分享。高度赞赏,WB
    • 嗨,我们有 xx.key 和 xx.crt 文件。这些可以用来代替 pem 吗?
    猜你喜欢
    • 1970-01-01
    • 2015-10-04
    • 1970-01-01
    • 2012-04-19
    • 2012-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-23
    相关资源
    最近更新 更多