2017-01-15 15 views
0

私はhttps://www.example.comにすべての着信トラフィックを提供していますメインサーバを持っています。メインサーバーは、クライアントにセカンダリサーバーを割り当てて、永続的な安全なWebSocket接続を確立します。通常、TLSを必要とするアドホックサーバーはどのように実装されていますか?

これらのセカンダリサーバは、アドホックベースで(既存のセカンダリサーバがどのように混雑しているかに応じて)開始および停止することができ、起動時に新しいパブリックIPアドレスが与えられます(AWSまたはLinode-クラウドホスティングサービス)。起動時に、セカンダリサーバはメインサーバで認証され、メインサーバにパブリックIPアドレスを通知します(メインサーバが受信クライアントに通知できるようにします)。

安全なのWebSocket(WSS://)を使用するには、接続を、私はおそらく、私は、各セカンダリサーバに与えるために、サブドメイン名を必要とすることを意味する、そのサーバーの証明書を取得する必要があります。しかし、ドメイン名はインターネットを介して伝播するのにかなり時間がかかりますので、私は即座にサーバーを起動して使用することはできません。私は唯一のIPアドレスを使用して証明書を取得しなければ

(私のセカンダリサーバがドメイン名を持っていないことを意味します)。クラウドホスティングサービスはサーバーのシャットダウン時に固定IPアドレスを保持しないため、あまり安全ではないようです。

私の認証局では、私はLet's Encryptを使用しています。私はWebSocket接続を経由するデータが本当に機密ではないオンラインゲームを実行しています。

この全体の事は私のサーバー上でTLSを設定するための正しい方法であるには余りにも複雑なようです。

はどのようにこれが適切に行われる必要がありますか?セカンダリサーバーインスタンスを起動してTLSを自動的にセットアップする方法はありますか?それとも、すべてを忘れてセカンダリサーバにTLSを使用しないのですか?

答えて

1

まず「伝播」は本物ではない、というか、それがDNSキャッシュについての事実にだけ緩く基づいて、伝説の名前。このゲームについて真剣に考えている人は、サーバを回転させてリアルタイムで裂くことができれば、最終的にはこのことについて学ぶ(または知っている人を雇う必要があります)必要があります。 「伝播」に時間がかかったり、何日もかかるとの考えを得たなら、それはあなたがその違いを知っていることを疑うので、より良いサービスを提供するのに気を使うことはできません。

これを行う最も簡単な方法は、これがいくつかの大きなサービスで、スピンアップして解体される大規模なサービスになる場合は、ワイルドカード証明書を購入することです。つまり、* .example.comとanything.example.comという名前のサーバで動作します(余分なドットはありません。余分なドットがあるためsomething.subdomain.example.comでは動作しません)。 Let's Encryptはワイルドカードを提供していませんが、サービス全体を実行するために必要なのは非常に高額ではありません。

一方、値段が安い場合は、Let's EncryptのDNS-01検証方法を使用して、アドレスの内容を知る前に一連のサーバー名の証明書を発行できるようにします。したがって、この検証を使用してserver01.example.com、server02.example.comなどの証明書をserver40.example.comまで取得すると、この証明書(およびそれに伴う秘密鍵)を、スピンアップする名前のいずれか。物事を行うこの方法は、セキュリティ上の理由で理想的ではありませんが、あなたはあまり気にしないと言います。

DNS-01方式を使用すると、証明書が発行されたときにサーバを実際に動作させる必要はなく、DNSレコードを制御するだけです。事前に必要と思われるサーバーの大まかな数を把握する必要がありますが、5人のプレイヤーか5百万人のプレイヤーがいるかどうかわからないゲームを構築する場合は、率直に言って、最悪の問題はTLSにいること。

+0

答えを読んで、stackoverflow.comがTLSを使用していないことを認識したら(サインインページを除いて)、私はアカウントシステムが必要になるまでTLSを使用しません。ありがとう! – Bernard

関連する問題