【发布时间】:2011-01-22 19:17:58
【问题描述】:
我想在 Grails 中实现 SSL。我在 Grails 文件夹结构中找不到文件 /conf/server.xml。有人实现了吗?
非常感谢任何帮助。
【问题讨论】:
我想在 Grails 中实现 SSL。我在 Grails 文件夹结构中找不到文件 /conf/server.xml。有人实现了吗?
非常感谢任何帮助。
【问题讨论】:
您可以运行 grails run-app -https 而不是 grails run-app,它会为您创建一个自签名证书并在 SSL 中运行。
【讨论】:
-https 选项(org.grails.plugins.tomcat.fork 的 MissingMethodException .TomcatDevelopmentRunner.loadInstance)。将插件更新到 7.0.52 或更高版本应该可以解决。见问题:jira.grails.org/browse/GRAILS-11123
如何设置取决于您如何部署 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 将创建它,但如果您将其替换为您自己的,则不会覆盖它。
【讨论】: