要使我们的身份验证与我们的ember应用程序一起使用,我们需要从安全网址提供应用程序。我们有一个自签名的ssl证书。
如何设置ember-cli以便为index.html提供https
域名。
干杯
答案 0 :(得分:18)
另见https://stackoverflow.com/a/30574934/1392763。
如果您将始终使用SSL,则可以在项目的"ssl": true
文件中设置.ember-cli
,这将导致ember serve
命令默认情况下使用SSL而不必传递命令行每次都会举旗。
默认情况下,ember-cli会在项目根目录中的 ssl 文件夹中查找 server.key 和 server.crt 文件但您也可以使用--ssl-key
和--ssl-cert
选项对其进行自定义,以提供备用路径。
如果您还没有自行签名的SSL证书进行开发,可以按照以下说明轻松生成一个:https://devcenter.heroku.com/articles/ssl-certificate-self
示例 .ember-cli :
{
"disableAnalytics": false,
// Use SSL for development server by default
"ssl": true,
"ssl-key": "path/to/server.key",
"ssl-cert": "path/to/server.crt"
}
答案 1 :(得分:5)
对于谷歌来说,这已不再适用。使用ember-cli --ssl
Thx to xdumaine 7月12日10:08 ***
强调文字你不能直接来自ember-cli而没有把你的手放在我不推荐的代码中:)
如果你想这样看: node_modules/ember-cli/lib/tasks/server/express-server.js
,也可以进入node_modules/ember-cli/lib/tasks/server/livereload-server.js
然而,有其他更清洁的解决方案,例如使用nginx作为(反向)代理:)或直接从/ dist文件夹上的nginx服务:) 使用nginx反向基本示例(没有尝试使用ssl但理论上应该可以工作:p):
server {
listen 443;
server_name *.example.com;
ssl on;
ssl_certificate /path/to/your/certificate.crt;
ssl_certificate_key /path/to/your/key.key;
location / {
proxy_pass http://localhost:4200;
}
}
我说nginx,但实际上任何网络服务器都可以正确地做到这一点:)
NaB请勿在生产中使用ember serve
答案 2 :(得分:0)
我将tunnels gem用于pow port-proxying。
使用真实的网络服务器(如前面的nginx答案)是一个很好的方法,可能更像是你的生产设置。但是,我管理了很多不同的项目,对于管理我所有项目的nginx配置文件并不感兴趣。 Pow可以很容易地在一台开发机器上的端口80上提供许多不同的项目。
Pow有两种主要模式。主要功能是作为Rack应用程序的简单服务器,可通过http://my-application.dev/
等自定义本地域访问。这是通过将~/.pow/my-application
符号链接到包含机架应用程序的目录来完成的。但是,pow还可以通过创建仅包含端口号的文件(例如echo 4200 > ~/.pow/my-application
)将对自定义本地域的请求代理到指定端口。这使得使用实际域在本地开发变得容易(同样,作为旁注,子域也可以工作,这非常方便;例如,foobar.my-application.dev
也将路由到my-application
)。
Tunnels可让您轻松使用https。
# Install pow
curl get.pow.cx | sh
# Set up pow proxy for your ember app
echo 4200 > ~/.pow/my-application
# Start your ember server
ember serve # specify a port here if you used something else for pow proxy
# Check that http://my-application.dev correctly shows your ember app in the browser
# Install tunnels
gem install tunnels # possibly with sudo depending on your ruby setup
# Start tunnels
sudo tunnels
# Now https://my-application.dev should work