Encrypt/AWS/AzureAWSセキュリティHTTPSletsencryptoraclecloudはじめに本記事は、マルチクラウド環境におけるサーバ証明書の運用についての記事になります。マルチクラウド環境でサーバ証明書を使用している場合は、環境によって対応手順が異なります。ワイルドカードでサーバ証明書を取得していている場合は、留意事項があるケースが多いので注意が必要です。本記事では実際に運用での経験を踏まえて、サーバ証明書の運用時のポイント等について簡潔にまとめています。Encryptを使用する場合のメリットとデメリットは以下になります。Encryptを選択する場合は、用途に合わせて使用しましょう。有料のサーバ証明書を購入するにあたり、安く購入したいときは入手先によって直販より代理店で購入した方が安い場合があります。その情報は直販に聞いても知らないこともあるため、自分で代理店を調べる必要があります。探し方としては、直販のWebサイトによっては代理店の確認ができます。ワイルドカードを要件とするサーバ証明書の選び方ワイルドカードを要件としてサーバ証明書を購入する際は注意が必要です。レンタルサーバのサービスでサーバ証明書を発行する場合は、サービスによっては単一ドメインのみの対応で、ワイルドカードに対応していない場合があります。ワイルドカードに対応していないサービスでサーバ証明書を購入する場合、単一ドメインで発行するサーバ証明書の必要分の代金が発生します。ワイルドカードを要件とする場合は、ワイルドカードに対応していることを確認しましょう。ワイルドカードでサーバ証明書を発行するにあたり、CSR作成時は注意しましょう。ジオトラストでは以下の注意事項を公開しています。ワイルドカードの証明書はサブドメインの異なるコモンネームでも利用できる証明書です。ドメインの前へ「*」アスタリスクを指定したコモンネームでCSRを生成してください。例:*.geotrust.co.jpワイルドカード証明書の申請時の注意はありますかサーバ証明書購入時に確認すべきことサーバ証明書発行業者に、有効期間内の発行済み証明書について再発行できることを可能かどうか事前に確認しておくとよいです。Bug」の様な場合は、OpenSSLのバージョンを最新のバージョンまでアップグレードし、新しいCSRでSSLサーバ証明書を再発行する必要があります。Encryptでサーバ証明書を発行する場合は、certbotをインストールして発行します。Standaloneプラグインを使用する際は、以下のコマンドを実行します。Webサーバーを停止させずにサーバ証明書を取得したい場合は、Webrootプラグインを使用します。<メールアドレス>ワイルドカードの場合は、以下のコマンドを実行します。チャレンジによる認証が必要になるため、_acme-challenge.の値としてTXTレコードを設定します。53などでTXTレコードを更新する際は、反映されるまでラグがあるので、TXTレコード設定後続けてcertbotの処理を行うと、認証に失敗する場合があります。Manager)でサーバ証明書の発行ができます。ACMで取得したサーバ証明書の有効期限は、発行日から13か月後になり、有効期限の60日前に更新プロセスが開始されます。ACM使用時の留意事項としてワイルドカードの場合は、手動更新が必要になります。自動更新されないため、注意が必要です。証明書を使用してアプリケーションのHTTPS化を行うことができます。Service証明書の自動更新が「オン」になっている場合は、自動的に更新が行われます。Service証明書の自動更新が「オン」の場合は、基本的に対応不要ですが、使用しない場合は無駄に課金されるので注意が必要です。レンタルサーバのサーバ証明書お名前.comなどのレンタルサーバによっては、自動的にサーバ証明書を更新してくれるサービスもあります。自動的に更新されるため、対応は不要です。料金も無料だったりします。仕様が不明な場合はレンタルサーバのサポートに確認すれば教えてくれます。レンタルサーバでサーバ証明書を利用する場合は導入時にきちんと確認しましょう。サーバ証明書の運用サーバ証明書の更新切れ対策サーバ証明書の更新切れを防ぐために、メールの通知設定はきちんと行いましょう。AWSなどアカウント登録時に普段使用しないメールアドレスを指定すると、更新切れに気づくことができません。その様な状況を考慮し、AWSの場合は代替のメールアドレスで宛先を追加して対策ができます。メールアドレスは個人の担当者のメールアドレスではなく、メーリングリストなどにしておくと良いでしょう。念を入れる場合は、サーバ証明書の期限をチェックし、期限が近くなったら通知する仕組みを作るのも有効な一手です。AWSの場合CLIのコマンドを使用すれば実現できます。サーバ証明書更新時の確認サーバ証明書更新後は、Webサイトにアクセスしてサーバ証明書の有効期限が更新されたことだではなく、サーバ証明書の検証エラーが出てないことも確認することをお勧めします。例として、WebサービスとiPhoneアプリ及びAndroidアプリを提供するサービスにおいて、サーバ証明書更新時に中間証明書の登録漏れなどの不備があった場合、WebブラウザやiPhoneアプリはアクセスできるけど、Androidアプリのみアククセスできないという事象が発生します。実際に経験しましたが当事象が発生すると、Androidアプリが真っ白になり、何も操作ができなくなりました。デバッグについてもWebブラウザやiPhoneアプリからはアクセスができ、Androidのみ当事象が発生している状況だったので調査にも少し時間を要しました。使用したセキュリティが参考になります。以下はドキュメントからの引用です。CA」や「自己署名サーバー証明書」の場合に発生するようなエラーは発生しません。時間をかけてキャッシュしているためです。存在していなくてもエラーにはなりません。よって、サーバ証明書更新後はサーバ証明書が適切に更新されたことを確認しましょう。簡単にできるサーバ証明書の確認方法について以下に記載します。Testによる二つの方法があります。errorが出力される場合は、サーバ証明書の検証に失敗しているため、エラーが発生しています。出力結果がdepth=0となっているため、中間証明書がないことが分かります。以下はサーバ証明書に中間証明書が登録されていないときの出力例になります。Encryptを使用しています。X3---サーバ証明書に不備がない場合は以下の様に出力されます。issuesにincompleteと出力されます。issuesにNoneと出力されます。anchorと出力されます。Testで見おとさないように注意しましょう。その他クラウド環境のロードバランサーを使用し、ロードバランサーにサーバ証明書を登録して、クライアントとロードバランサー間でHTTPS通信を行っている場合の話です。HTTPとHTTPSのリスナーが存在し、基本的にはHTTPSで通信を行うが、HTTPのリクエスト時にリダイレクトしたいというケースもあると思います。Webサーバだけの話なら、Webサーバの機能でリダイレクトで処理を行うことができますが、クラウド環境のロードバランサーの仕様によっては対応してないこともあります。その様な場合は、Webサーバの機能でリダイレクトを行うか、ロードバランサーのHTTPリスナーを削除するなどの対応が必要です。本記事では、ロードバランサー配下にWebサーバを配置し、Webサーバの機能でリダイレクトを行う場合の方法について記載します。WebサーバはNginxを使用します。Cloudの場合はロードバランサーのリダイレクトに対応していないため、Webサーバの機能でリダイレクトする必要があります。クライアントからのHTTP通信をリダイレクトするためには、nginxの設定ファイル(serverディレクティブ)に以下の記述を行うことで実現できます。}以下リダイレクト設定の考慮点です。識別し、リダイレクトループを防ぎます。リクエストヘッダーを付けない場合はリダイレクトループが発生します。Cloudのヘルスチェック設定(デフォルト)は、HTTPプロトコルになっています。よって、リダイレクト設定を行うと、ステータスコード301を返すため、ヘルスチェックに失敗しロードバランサーから切り離されます。そのため、ヘルスチェックの設定をTCPプロトコルに変更します。Explorer(IE)11、Safari、Firefox、ChromeでTLS1.0及び1.1のプロトコルがデフォルトで無効化されます。2020年にブラウザからHTTPS通信でWebサイトにアクセスが行われると、Webサイト側でTLS1.2以上に対応していない場合は、Webサイトにアクセスした際に警告が表示されアクセスがブロックされます。何も知らないユーザからすると正常にアクセスできなくなるため、ユーザ影響がかなり大きことが想定されます。Blogより確認できます。よって、Webサイトを提供する場合は、TLS1.2以上に対応していることを確認しましょう。おわりにサーバ証明書の更新切れに注意し、これからもHTTPSと上手に付き合っていきましょう。requestStockLike3@BrutusDevOpsとAIの二刀流を目指す凡人。Cloud、Terraform、Ansible等について発信しています。登壇、執筆等あれば、Twitterよりメッセージお願いします。Puulsでも受け付けてます。https://puuls.jp/p/1iz5MPU1tgkhttps://brutus.ml/Follow株式会社GAUSS株式会社GAUSSは、AIソフトウェアを組み込んだサーバの提供、AIサービス構築のコンサルティング、AIのエンジニア育成をセットにしてサービス提供を展開するスタートアップ企業です。upLoginユーザーは見つかりませんでした。