SignatureDoesNotMatch when authorize v4 with HTTPS.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,
I'm having problems with authentication AWS4 when using HTTPS (my cluster running on Ceph Jewel 10.2.1 and platform CentOS 7). I used boto3 create presigned_url, here's my example:

s3 = boto3.client(service_name='s3', region_name='', use_ssl=False, endpoint_url='https://rgw.x.x',
                  aws_access_key_id= <access_key>,
                  aws_secret_access_key= <secret_key>,
                  config=Config(signature_version='s3v4', region_name='')
                 )
url = "" HttpMethod='GET', ExpiresIn=3600)
rsp = requests.get(url, proxies={'http': '', 'https': ''}, headers={'': ''})

Then I received error 403 SignatureDoesNotMatch. And this is my rgw.log:
....
SERVER_PORT = 0
SERVER_PORT_SECURE = 443
HTTP_HOST: rgw.x.x
format = canonical host headers: rgw.x.x: 0
..
failed to authorize the request
req 1: 0.007245: s3: GET /: list_buckets: http status = 403
..

I've seen this in https://github.com/ceph/ceph/blob/master/src/rgw/rgw_rest_s3.cc:
int RGW_Auth_S3::authorize_v4(RGWRados *store, struct req_state *s){
  ..
  string port = s->info.env->get("SERVER_PORT", "");
  string secure_port = s->info.env->get("SERVER_PORT_SECURE", "");
 ...
    if (using_qs && (token == "host")) {
      if (!port.empty() && port != "80") {      
        token_value = token_value + ":" + port;
      } else if (!secure_port.empty() && secure_port != "443") {
        token_value = token_value + ":" + secure_port;
      }
    }
.....

So if SERVER_PORT = 0 then host:rgw.x.x: 0 and it leads to an error SignatureDoesNotMatch ?
I do not know how to make civetweb in RGW listen on port 80, 443s to ignore this error.
_______________________________________________
ceph-users mailing list
ceph-users@xxxxxxxxxxxxxx
http://lists.ceph.com/listinfo.cgi/ceph-users-ceph.com

[Index of Archives]     [Information on CEPH]     [Linux Filesystem Development]     [Ceph Development]     [Ceph Large]     [Ceph Dev]     [Linux USB Development]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [xfs]


  Powered by Linux