ドット(.)を含むS3バケットへgsutilからアクセスする
ドット(.)を含むS3バケットへgsutilからアクセスすると、エラーが生じることがあるので、その原因と対応策を説明するとともに、根本的な問題解消の方法を提案する。
発生しうる問題
$ gsutil ls s3://dot.example.com
Failure: Host dot.example.com.s3.amazonaws.com returned an invalid certificate (remote hostname "dot.example.com.s3.amazonaws.com" does not match certificate): {'notAfter': 'Apr 9 23:59:59 2015 GMT', 'subjectAltName': (('DNS', '*.s3.amazonaws.com'), ('DNS', 's3.amazonaws.com')), 'subject': ((('countryName', u'US'),), (('stateOrProvinceName', u'Washington'),), (('localityName', u'Seattle'),), (('organizationName', u'Amazon.com Inc.'),), (('commonName', u'*.s3.amazonaws.com'),))}.
この問題が発生する原因
Amazon S3が提供しているワイルドカード証明書のSANが*.s3.amazonaws.com
なので、dot.example.com.s3.amazonaws.com
とホスト名ミスマッチが生じる。
この問題に対するワークアラウンド
https://github.com/GoogleCloudPlatform/gsutil/blob/master/gslib/commands/config.py
にも説明がある通り、
[Boto]
[...]
https_validate_certificates
[...]
# Set 'https_validate_certificates' to False to disable server certificate
# checking. The default for this option in the boto library is currently
# 'False' (to avoid breaking apps that depend on invalid certificates); it is
# therefore strongly recommended to always set this option explicitly to True
# in configuration files, to protect against "man-in-the-middle" attacks.
https_validate_certificates = True
BotoのConfig (e.g., ~/.boto
)のここの
https_validate_certificates = True
を
https_validate_certificates = False
とすればよい。
まとめ
S3 Static Website Hosting機能を使わないバケットに対して、ドット(.)を含む名前を使わない。(重要)
S3のバケットを作成する際、そのバケットでStatic Website Hosting機能を使うかどうか判断してから、バケット名を決める。(重要)
Author And Source
この問題について(ドット(.)を含むS3バケットへgsutilからアクセスする), 我々は、より多くの情報をここで見つけました https://qiita.com/tnir/items/fa47f016fbcb8f7dc969著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .