HSTS環境でOpsCenterサーバーのHTTPSを無効にする

HSTS環境でOpsCenterサーバーのHTTPSを無効にします。

HSTS環境でOpsCenterサーバーのHTTPSを無効にします。HSTS環境でない場合は、SSLエントリーをコメントアウトするだけでHTTPSを無効にすることができます。HSTS環境でHTTPSを使用している場合は、HTTPSを完全に無効にする前に、以下の手順に従ってHSTSヘッダーを段階的に削除してください。

opscenterd.conf

opscenterd.confファイルの場所は、インストールのタイプによって異なります。
  • パッケージ・インストール:/etc/opscenter/opscenterd.conf
  • tarボール・インストール:install_location/conf/opscenterd.conf

始める前に

実稼働システムでOpsCenterサーバーからHTTPSを削除することはあまりありませんが、開発およびテスト段階では必要な場合があります。HSTS環境ではHTTPSの無効化プロセスが複雑になります。これは、HTTPSサービスが無効になっても、それまでHSTSヘッダーを受信していたブラウザーは暗号化されていないHTTPを介したOpsCenterへの接続を拒否するためです。HSTS環境でHTTPSを無効にするときは、まずhsts_max_ageを10秒などの非常に小さな値に設定します(デフォルト値は31536000秒、つまり1年です)。大幅に値を小さくすると、それ以降、各ブラウザーはOpsCenterに接続して更新されたヘッダーを受信し、ヘッダーはただちに期限切れになるため、HSTSが実質的に無効になります。OpsCenterにアクセスするすべてのブラウザーが更新されたヘッダーを受信するまでの間、HTTPSは有効のまま、hsts_max_ageを非常に小さな値に設定してOpsCenterを引き続き実行します。その時点で、サポートされているブラウザーがOpsCenterに接続する機能を中断することなく、HTTPSとHSTSを完全に無効にすることができます。

HTTPSが既に無効になっており、ブラウザーが現在OpsCenterに接続できない場合は、以下の方法を使用できます。
  • HTTPSを再び有効にし、前述のとおりhsts_max_ageの値を小さくします。
  • ブラウザーのHSTSヘッダー・キャッシュを手動で消去します。これには、OpsCenterにアクセスするすべてのブラウザーにアクセスする必要があります。HSTSヘッダーのキャッシュの消去については、ブラウザーのメーカーのドキュメントを参照してください。

手順

  1. OpsCenter構成ファイルopscenterd.confを開きます。
  2. [webserver]セクションで、必要に応じて以下の変更を行います。
    1. HSTSの有効期限が長い場合は、hsts_max_ageの値を小さくします。
    2. opscenterd.confを保存し、OpsCenterを再起動します。
    3. すべてのブラウザー・クライアントが接続し、有効期限を短く設定して更新されたhstsヘッダーを確実に受信するまで、しばらくの間、OpsCenterをこの状態で実行します。
  3. opscenterd.confをもう一度開きます。sslおよびmax ageオプションをコメントアウトします。以下の例に示すように、hsts_enabledをFalseに設定します(またはコメントアウトします)。
    
    [webserver]
    port = 8888
    interface = 127.0.0.1
    #ssl_keyfile = /var/lib/opscenter/ssl/opscenter.key
    #ssl_certfile = /var/lib/opscenter/ssl/opscenter.pem
    #ssl_port = 8443
    hsts_enabled = False
    #hsts_max_age = 31536000
  4. opscenterd.confを保存し、OpsCenterを再起動します。
    HSTSヘッダーを持つクライアントが接続できない場合は、有効期限を短くしてhttpsを再び有効にするか、ブラウザーのベンダーのドキュメントでHSTSヘッダー・キャッシュの消去方法を参照してください。