2016-09-06 124 views

回答

7

创建证书

运行这些命令以获得certbot-auto。 certbot-汽车应该在大多数系统

wget https://dl.eff.org/certbot-auto chmod 755 certbot-auto

工作时,此命令启动让你的证书的过程。 -d标志允许您传入您想要保护的域。或者,如果没有-d标志,它将弹出一个提示您输入域的提示。

./certbot-auto certonly --manual -d app.yoursite.com

然后它会问你下面。不要打入。

Make sure your web server displays the following content at              
http://app.yoursite.com/.well-known/acme-challenge/SOME-LENGTHY-KEY before continuing: 

SOME-LONGER-KEY 

在您的public文件夹中创建目录路径。如果你没有,创建一个。

mkdir -p public/.well-known/acme-challenge/

然后创建文件SOME-LENGTHY-KEY并将SOME-LONGER-KEY里面

echo SOME-LONGER-KEY > public/.well-known/acme-challenge/SOME-LENGTHY-KEY

提交并推送这个改变你的Heroku应用。

git push heroku master

现在按回车键继续验证过程。您会收到类似这样的消息

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/app.yoursite.com/fullchain.pem. Your cert will expire on 2016-04-11. To obtain a new version of the certificate in the future, simply run Let's Encrypt again.

上传证书

要上传证书的Heroku,首先启用SSL贝塔

heroku labs:enable http-sni -a your-app heroku plugins:install heroku-certs

添加您fullchain.pemprivkey.pem到Heroku。

sudo heroku _certs:add /etc/letsencrypt/live/app.yoursite.com/fullchain.pem /etc/letsencrypt/live/app.yoursite.com/privkey.pem

您可以验证该证书与

heroku _certs:info

上传更改您的DNS设置

更新您的DNS指向app.yoursite.com.herokudns.com

验证SSL是工作

要检查是否设置了SSL,请运行以下命令。 -v为您提供了详细的输出。 -I仅显示文档信息。 -H将标头传递给URL。我们传递的头部确保缓存未被使用,并确保您获得新证书而不是旧证书。

curl -vI https://app.yoursite.com -H "Cache-Control: no-cache"

检查输出包含以下

* Server certificate: * subject: C=US; ST=CA; L=SF; O=SFDC; OU=Heroku; CN=app.yoursite.com

如果subject行不包含CN=app.yoursite.com,等待5〜10分钟,然后再试一次。如果是这样,你几乎可以走了。

让流星特定更改

要完成这个过程,你会想你的ROOT_URL环境变量更改为新的https版本。

heroku config:set ROOT_URL=https://app.yoursite.com

那么你要确保你的用户始终使用SSL与force-ssl

meteor add force-ssl

最后,如果你在你的应用程序设置任何的OAuth登录( Facebook,Google等),您需要为他们提供您的URL的新版本https

更新

运行certbot-auto再次

./certbot-auto certonly --manual -d app.yoursite.com

可能提示您输入内容相同的同一端点。如果是这样,只需按Enter即可。如果没有,则需要重复上述步骤。

然后它会创建新的证书文件,这样你就会上传到Heroku的与

heroku certs:update /etc/letsencrypt/live/app.yoursite.com/fullchain.pem /etc/letsencrypt/live/app.yoursite.com/privkey.pem

然后确认,运行验证SSL是工作以上命令

来源

+0

是的,这是一个测试版的功能,但它提供给任何人谁愿意使用它。 https://blog.heroku.com/announcing_heroku_free_ssl_beta_and_flexible_dyno_hours – merlinpatt

+0

对不起,我不得不删除我以前的评论,它有我的客户名称,它在这里: 'heroku实验室:启用http-sni -a你的应用程序不为每个人工作,因为这是一个测试版功能。相反,您可以在'/ etc/letsencrypt/live/yourdomain.com /'文件夹中获得'fullchain.pem'和'privkey.pem',并将它们手动添加到您的Heroku仪表板中 –

+0

我确认该命令对我无效,来自法国,我有一条消息说该功能不存在或不可用。其他一切工作完美,非常感谢这个答案:) –

相关问题