AWS Certificate Manager (ACM) によるSSL証明書発行

SSL証明書をアマゾン ウェブ サービス(AWS)で扱う場合の注意点についてご説明します。ACMを使うことで、ドメイン認証のSSL証明書が無料で利用が可能です。常時SSL用途で使う場合は、大きなメリットとなります。半面、企業認証などの証明書を利用する場合は、複雑な手順が必要になってきます。

SSL証明書とは

SSL証明書を使うことで、ウェブサイトのセキュリティを強化することが可能です。「https:// 」 から始まるURLの場合は、SSL証明書を利用した通信となっています。

SSL証明書では、「暗号化」と「運営者の認証」という二つのセキュリティ強化が可能です。

暗号化

利用者のブラウザとWEBサーバー間の通信を暗号化を行います。暗号化をすることで、利用者の個人情報などの漏洩を防ぐことが可能です。

たとえば、ECサイトなどでは、クレジットカード情報を入力することがあります。SSL証明書を利用しないhttp通信で情報を送信した場合、悪意のある第三者から通信内容を盗聴されたり、改ざんされる恐れがあります。SSL証明書を利用しているhttps通信の場合は、通信内容が暗号化されており第三者が中身を見ることができません。そのため、情報が外部に漏れたり、改ざんされる心配がなくなります。

運営者の認証

ウェブサイトの運営者の情報を第三者によって証明することが可能です。

普段気にすることはありませんが、ブラウザからSSL証明書の詳細情報を見ることが可能です。閲覧は、ブラウザのアドレスバーの左にある、鍵マークをクリックすることで行います。

yahoo.co.jpであればヤフーが、google.co.jpであればグーグルがサイト運営しています。証明書の詳細を見ることで、正しい運営者が運営しているかの確認が可能です。

SSL証明書の種類

SSL証明書は大きく分けて3種類あります。

 ・ドメイン認証(DV)
 ・企業認証(OV)
 ・EV認証(EV)

どの種類の証明書でも通信の暗号化は行われます。

違いは運営者の認証範囲です。

ドメイン認証(DV)

最も手軽なものがドメイン認証です。ドメイン認証では、通信の暗号化と、ドメイン名についての認証がされます。

ドメイン名の認証があることで、アクセスしようとしているドメインが、正しいサーバーへアクセスしていることが保証されます。悪意があるインフラ管理者がいる環境では、https://yahoo.co.jp にアクセスしているにもかかわらず、別のサーバーにアクセスさせることが可能です。別のサーバーで似たサイトを用意しておけば、気づかれずに個人情報を取得することができてしまいます。ドメイン認証があることで、ドメイン名と接続先サーバーの保証がされるため、安心してサイトの利用が可能になります。

世間的には常時SSLが当たり前となっています。最低でもドメイン認証のSSL証明書の利用を検討すべきです。

企業認証(OV)

企業認証は、ドメイン認証と同様に通信の暗号化と、ドメイン名についての認証が行われます。それに加えて、運営企業が実在することを証明します。

クレジットカードなどの重要な個人情報は、信頼できるサイト以外では入力したくないものです。

企業認証を利用することで、個人情報を渡す先の企業情報を明示することが可能です。
ECサイトやサービスサイトで、クレジットカードなどの重要な個人情報を扱う場合は、企業認証以上の証明書の利用を検討しましょう。

EV認証(EV)

EV認証では、ドメイン認証よりも強固な認証作業を行います。ドメイン認証は企業の実在有無まで確認を行います。EV認証になると企業が実在しており、運営がされている企業かどうかや、承認者や署名者の確認が行われます。

金融系のサイトなど、特にセキュリティが重要なサイトの場合に利用されています。

AWSではACMを利用

AWSでは、無料でSSL証明書の利用が可能です。

ACM(AWS Certificate Manager)を使うことで、証明書の発行や自動更新が可能です。また、ELBやCloudFrontなど、AWSの各サービスへのデプロイを行うことができます。

これらはすべて、セルフサービスで提供されています。

従来であれば、CSRを発行した上で、認証局からSSL証明書を購入していました。ACMを使うことで、CSR発行の手間をなくし、費用ゼロでSSL証明書の発行が可能になります。

ACM利用上の注意

手間が少なく無料でSSL証明書の発行ができるACMですが、注意点もあります。

・EC2インスタンスへの設定はできない
・ドメイン認証のみ発行が可能
・ドメイン認証以外を利用する場合は自信で購入が必要

EC2インスタンスへの設定はできない

ACMで作成したSSL証明書は、AWSでマネージドされたサービスへのみ適用が可能です。そのため、EC2インスタンス上で動かすWEBサーバーへの適用はできません。

EC2インスタンス上でWEBサーバーを立てるためには、apacheやnginxなど設定が必要です。それらのWEBサーバーは、ユーザー管理となります。そのため、ACMで発行したSSL証明書の利用ができません。

EC2インスタンス上で提供するWEBサービスへSSL証明書を適用させるためには、前段にALBやCloudFrontを配置します。ALBやCloudFrontへは、ACMで発行したSSL証明書の適用が可能になるので、そちらへ適用させます。

ACMで発行したSSL証明書をAmazon EC2へ適用できるようになりました!

2022年9月24日にAWSより発表がありました。
AWS Certificate Manager (ACM) for Nitro Enclaves が Apache HTTP ウェブサーバーのサポートを開始の発表がありました。

設定方法等については、技術ブログにまとめているのご参考にしてください。
ACMのSSL証明書(Amazonの無料証明書)をEC2(Apache)で利用してみた

ドメイン認証のみ発行が可能

ACMでは「ドメイン認証」のみが発行可能です。「企業認証」や「EV認証」を発行することはできません。とはいえ、常時SSL化のために利用する用途であれば十分すぎるほどの利用価値があります。

企業認証やEV認証を利用したい場合

ドメイン認証ではなく、企業認証やEV認証を利用したい場合は少し複雑になります。

EC2インスタンスのみで利用する場合は、従来通りの方法で問題ありません。自分でSSL証明書を取得して、WEBサーバーへSSL証明書の設定を行います。

ALBやCloudFrontなど、AWSのサービスで利用する場合は少し複雑です。AWSのサービスでSSL証明書を使うためには、ACMから適用する必要があります。そのため、自身で取得したSSL証明書を、ACMへアップロードする必要があります。

ディーネットのSSL証明書サービス

ディーネットが提供するAWS運用代行サービスでは、SSL証明書の取得、更新、設定についてすべてお任せいただけます。

AWSのACMでは、ドメイン認証サービスしか取得できません。ディーネットへお任せいただくと、ACMでの無料SSL証明書の発行はもちろん、有償の企業認証、EV認証付きのSSL証明書の発行が可能です。

ACMやEC2インスタンスへの設置や、更新管理などすべて対応しますので、お客様はAWS固有のサービス仕様を意識する必要はありません。

最後までご覧いただきありがとうございます

この記事では、SSL証明書とAWSで扱う場合の注意点についてご説明しました。

ACMを使うことで、無料のドメイン認証のSSL証明書が利用可能です。常時SSL用途で使う場合は、大きなメリットとなります。半面、企業認証などの証明書を利用する場合は、複雑な手順が必要になってきます。

必要に応じて使い分けていきましょう。