バケットに「.」(ピリオド)を含む名称を付けると、https通信がエラーになることがある。エラーが起こる仕組みを理解しておこう。
つまずき対策
S3にバケットを作成して、オブジェクトをアップロードすると、ユニークなURLが二つ発行され、httpまたはhttpsでアクセスする。ピリオドを含む「my.bucket」というバケット名にしたなら、以下の二つのURLが発行される(httpsで通信する場合を想定)。
https://s3-ap-northeast-1.amazonaws.com/my.bucket/object.html
https://my.bucket.s3-ap-northeast-1.amazonaws.com/object.html
このうち、上段のURLでアクセスする場合は問題がないが、下段のURLにアクセスするとSSLエラーとなってしまう。これはSSLサーバー証明書が「*.s3-ap-northeast-1.amazonaws.com」といったワイルドカード証明書を利用していることが原因だ。「bucket」がサブドメイン名と見なされて、ドメイン名は「*.bucket.s3-ap-northeast-1.amazonaws.com」と認識されてしまう。
バケット名は、このことを考慮して決めよう。
サーバーワークス クラウドインテグレーション部 技術二課 課長