Cloudflaresを使用してHerokuで完全に無料のSSLを取得しようとしています新しい無料 ユニバーサルSSL
この記事を読む: http://mikecoutermarsh.com/adding-ssl-to-heroku-with-cloudflare/
これは、CloudflareがSSLを無料で提供するようになった今、その可能性を示唆しているようです。
私が取った手順:
このエクスプレスミドルウェアでhttpsを強制する:
app.use(function(req, res, next) {
if (req.headers['x-forwarded-proto'] != 'https') {
res.redirect('https://' + req.headers.Host + req.path);
}
else {
return next();
}
});
Herokuドメイン http://example-app.herokuapp.com は正しく機能し、 https://example-app.herokuapp.com 、緑色のロックなどにリダイレクトされます。
http://example-app.com と https://example-app.com の両方が機能しません。ブラウザのタブアイコンは回転し続け、解決されません。これを機能させる方法について何かアイデアはありますか?これも可能ですか?
これはIS実際に可能です。CloudFlareサポートから:
こんにちはビル、
基本的に、「オリジン」がSSL接続をサポートしている限り、CloudFlareでフルSSLを使用できます。
サイモン
CloudFlareは本日このブログ投稿をリリースしました: https://blog.cloudflare.com/universal-ssl-be-just-a-bit-more-patient/
私のサイトは解決を開始しましたが、ブログ投稿の「エラーが表示される可能性があります」の部分のように、「接続はプライベートではありません」というメッセージが表示されます。また、私のCloudFlare設定には「SSL発行」アラートがあるので、発行されるとこれはうまくいくかもしれないと思います。私はすべてを投稿し続けます。
これは、私が設定したとおりに機能します。問題は、CloudFlareが 無制限のSSL を発行するのに数日かかったことでした。 CloudFlare SSL設定で「SSLアクティブ」と表示されると、機能します。
落とし穴があります:HerokuとCloudflareの間では安全ではありません。
*.herokuapp.com
証明書を提示し、CFは満足しています。残念ながら、HerokuとCFの中間者は、自己署名のsnakeoil.co.mordor
証明書を提示できます。CFも同様に満足します(ユーザーにはわかりません。CFの証明書しか表示されません)。これは、CloudFlareブログ投稿のFull SSLセクション Introducing Strict SSL に記載されています。yourdomain.com
certを提示することを期待している であり、エラーページを表示するためです: それで、フルSSLでのこのセットアップは受け入れられますか? CFとHerokuの間のリンクは、おそらく「バックボーン内、クラウドの上」にあり、アクティブな攻撃者にとっては制御が比較的難しいため、TLSがまったくない場合よりも通信の安全性が明らかに高いと言えます。しかし、それはエンドツーエンドの安全ではなく、通常はHTTPSと緑色のロックアイコンに関連付けられている誤った安心感をユーザーに提供しています。そして、TLSをまったく使用せずに前もっているよりも悪いと言う人もいます... [ https://news.ycombinator.com/item?id=8382335 ]に関する意見を参照してください。
2015年2月の時点で、CFには、他のドメインで証明書を期待するようにフルストリクトモードを構成するオプションがありませんでした。 CFがそれを許可しない理由はわかりません。明らかに技術的に実行可能です。
Apexドメインを機能させるには、おそらくALIASレコードをサポートするDNSプロバイダーを使用する必要があります。CloudflareもDNSを実行し、 おそらく機能します 。ここにリストされているその他のプロバイダー: https://devcenter.heroku.com/articles/custom-domains#root-domain
これを機能させるには、ドメインのCloudflareでページルールを作成する必要があります。鉱山は次のようになります。
URL Pattern: my-domain.co/*
Forwarding to: https://www.my-domain.co/$1
そこから、wwwのCNAMEを使用してmy-domain.herokuapp.comを指すことができます。
Cloudflare(および他のほとんどのDNSプロバイダー)は、ルートドメインのCNAMEレコードを許可していません。サブドメインのみ。 wwwはサブドメインであるため、すべてのトラフィックをwwwに強制し、それをherokuにcnameすることができます。