有没有可能在Ember的CLI服务器上启用HTTPS协议?我们的企业OAuth系统只允许通过HTTPS进行重定向,所以我在没有这个的情况下有点麻烦。
7dl7o3gd1#
请注意,从ember-cli 0.2.6开始,您的应用程序可以通过https提供服务。您只需要将server.key和server.crt文件添加到ssl/文件夹中。在ember-cli文件中添加
{ ..., "ssl": true }
也可以将其作为命令行参数ember s --ssl=true传递
ember s --ssl=true
遵循以下说明(此处复制):https://devcenter.heroku.com/articles/ssl-certificate-self
需要openssl库来生成您自己的证书。在您的本地环境中运行以下命令以查看您是否已经安装了openssl。
which openssl /usr/bin/openssl
如果which命令没有返回路径,那么您需要自己安装openssl:| 如果您有...|安装方式...|| - -|- -|| 操作系统|Homebrew:brew install openssl|| windows |Windows complete package .exe installer|| Ubuntu Linux操作系统|apt-get install openssl|
brew install openssl
apt-get install openssl
创建SSL证书需要私钥和证书签名请求。这些可以通过几个简单的命令生成。当openssl req命令要求输入“challenge password”时,只需按回车键,将密码留空即可。证书颁发机构使用此密码来验证证书所有者是否需要撤销其证书。由于这是自签名证书,无法通过CRL(证书撤销列表)撤销它。有关详细说明,请参阅创建SSL证书签名请求。第一个
openssl req
自签名SSL证书由server.key私钥和server.csr文件生成。openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crtserver.crt文件是您的站点证书,适合与Heroku’s SSL add-on沿着server.key私钥一起使用。
server.key
server.csr
openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
server.crt
dldeef672#
编辑:我想我误解了最初的问题--关于如何通过SSL进行本地开发,请参见the answer above。Ember CLI的服务器绝对不应该被用来服务生产中的应用程序。Ember应用程序是静态文件,Ember CLI的存在只是为了帮助你构建这些静态文件。一旦你准备好部署Ember CLI应用程序,运行ember build。这会把你的项目编译到一个dist文件夹中,其中包含了所有的静态资产。然后你可以使用任何你喜欢的web服务器来部署这些资产。在此处阅读有关部署的更多信息:http://www.ember-cli.com/#deployments。
ember build
dist
anauzrmj3#
我将以@萨姆的回答作为开场白:请不要在生产环境中使用。现在,我不知道你的技术堆栈是什么样子,但是当我在本地测试我的应用程序,需要通过HTTPS代理我的请求时,我使用NGINX作为通过SSL到我的本地服务器的反向代理。(注意我的服务器已经在NGINX上运行,所以这对我来说是一个非常简单的解决方案)。
server { listen *:4443; // Arbitrary Port Number location / { proxy_pass https://HOST_NAME:443/; } }
我这样运行我的ember服务器:
ember server --proxy http://HOST_NAME:4443
3条答案
按热度按时间7dl7o3gd1#
请注意,从ember-cli 0.2.6开始,您的应用程序可以通过https提供服务。您只需要将server.key和server.crt文件添加到ssl/文件夹中。
在ember-cli文件中添加
也可以将其作为命令行参数
ember s --ssl=true
传递生成自签名证书
遵循以下说明(此处复制):https://devcenter.heroku.com/articles/ssl-certificate-self
先决条件
需要openssl库来生成您自己的证书。在您的本地环境中运行以下命令以查看您是否已经安装了openssl。
如果which命令没有返回路径,那么您需要自己安装openssl:
| 如果您有...|安装方式...|
| - -|- -|
| 操作系统|Homebrew:
brew install openssl
|| windows |Windows complete package .exe installer|
| Ubuntu Linux操作系统|
apt-get install openssl
|生成私钥和证书签名请求
创建SSL证书需要私钥和证书签名请求。这些可以通过几个简单的命令生成。
当
openssl req
命令要求输入“challenge password”时,只需按回车键,将密码留空即可。证书颁发机构使用此密码来验证证书所有者是否需要撤销其证书。由于这是自签名证书,无法通过CRL(证书撤销列表)撤销它。有关详细说明,请参阅创建SSL证书签名请求。
第一个
生成SSL证书
自签名SSL证书由
server.key
私钥和server.csr
文件生成。openssl x509 -req -sha256 -days 365 -in server.csr -signkey server.key -out server.crt
server.crt
文件是您的站点证书,适合与Heroku’s SSL add-on沿着server.key
私钥一起使用。dldeef672#
编辑:我想我误解了最初的问题--关于如何通过SSL进行本地开发,请参见the answer above。
Ember CLI的服务器绝对不应该被用来服务生产中的应用程序。Ember应用程序是静态文件,Ember CLI的存在只是为了帮助你构建这些静态文件。
一旦你准备好部署Ember CLI应用程序,运行
ember build
。这会把你的项目编译到一个dist
文件夹中,其中包含了所有的静态资产。然后你可以使用任何你喜欢的web服务器来部署这些资产。在此处阅读有关部署的更多信息:http://www.ember-cli.com/#deployments。
anauzrmj3#
我将以@萨姆的回答作为开场白:请不要在生产环境中使用。
现在,我不知道你的技术堆栈是什么样子,但是当我在本地测试我的应用程序,需要通过HTTPS代理我的请求时,我使用NGINX作为通过SSL到我的本地服务器的反向代理。(注意我的服务器已经在NGINX上运行,所以这对我来说是一个非常简单的解决方案)。
我这样运行我的ember服务器: