** Description changed: [Environment] - Bionic - python3-httplib2 | 0.9.2+dfsg-1ubuntu0.2 + Bionic + python3-httplib2 | 0.9.2+dfsg-1ubuntu0.2 [Description] maas cli fails to work with apis over https with self-signed certificates due to the lack of disable_ssl_certificate_validation option with python 3.5. - [Distribution/Release, Package versions, Platform] cat /etc/lsb-release; dpkg -l | grep maas DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.5 LTS" ii maas 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all "Metal as a Service" is a physical cloud and IPAM ii maas-cli 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS client and command-line interface ii maas-common 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS server common files ii maas-dhcp 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS DHCP server ii maas-proxy 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS Caching Proxy ii maas-rack-controller 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all Rack Controller for MAAS ii maas-region-api 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all Region controller API service for MAAS ii maas-region-controller 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all Region Controller for MAAS ii python3-django-maas 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS server Django web framework (Python 3) ii python3-maas-client 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS python API client (Python 3) ii python3-maas-provisioningserver 2.8.2-8577-g.a3e674063-0ubuntu1~18.04.1 all MAAS server provisioning libraries (Python 3) [Steps to Reproduce] - prepare a maas server(installed by packages for me and the customer). it doesn't have to be HA to reproduce - prepare a set of certificate, key and ca-bundle - place a new conf[2] in /etc/nginx/sites-enabled and `sudo systemctl restart nginx` - add the ca certificates to the host sudo mkdir /usr/share/ca-certificates/extra sudo cp -v ca-bundle.crt /usr/share/ca-certificates/extra/ dpkg-reconfigure ca-certificates - login with a new profile over https url - when not added the ca-bundle to the trusted ca cert store, it fails to login and '--insecure' flag also doesn't work[3] [Known Workarounds] None + + [Test] + helpful urls: + https://maas.io/docs/deb/2.8/cli/installation + https://maas.io/docs/deb/2.8/cli/configuration-journey + https://maas.io/docs/deb/2.8/ui/configuration-journey + + # create bionic VM/lxc container + lxc launch ubuntu:bionic lp1820083 + + # get source code from repo + pull-lp-source python-httplib2 bionic + + # install maas-cli + apt-get install maas-cli + + # install maas server + apt-get install maas + + # init maas + sudo maas init + + # answer questions + + # generate self signed cert and key + openssl req -newkey rsa:4096 -x509 -sha256 -days 60 -nodes -out localhost.crt -keyout localhost.key + + # add certs + sudo cp -v test.crt /usr/share/ca-certificates/extra/ + + # add new cert to list + sudo dpkg-reconfigure ca-certificates + + # select yes with spacebar + # save + + # create api key files + touch api_key + touch api-key-file + + # remove any packages with this + # or this python3-httplib2 + apt-cache search python-httplib2 + apt-get remove python-httplib2 + apt-get remove python3-httplib2 + + # create 2 admin users + sudo maas createadmin testadmin + sudo maas createadmin secureadmin + + # generate maas api keys + sudo maas apikey --username=testadmin > api_key + sudo maas apikey --username=secureadmin > api-key-file + + # make sure you can login to maas-cli without TLS + # by running this script + # this is for the non-tls user + # this goes into a script called maas-login.sh + touch maas-login.sh + sudo chmod +rwx maas-login.sh + ---- + #!/bin/sh + PROFILE=testadmin + API_KEY_FILE=/home/ubuntu/api_key + API_SERVER=127.0.0.1:5240 + + MAAS_URL=http://$API_SERVER/MAAS + + maas login $PROFILE $MAAS_URL - < $API_KEY_FILE + ---- + sudo chmod +rwx https-maas.sh + # another script called https-maas.sh + # for the tls user + ---- + #!/bin/sh + PROFILE=secureadmin + API_KEY_FILE=/home/ubuntu/api-key-file + API_SERVER=127.0.0.1 + + MAAS_URL=https://$API_SERVER/MAAS + + maas login --insecure $PROFILE $MAAS_URL - < $API_KEY_FILE + ---- + + # try to login + ./maas-login.sh + + cd /etc/nginx/sites-enabled + sudo touch maas-https-default + #example nginx config for maas https + server { + listen 443 ssl http2; + + server_name _; + ssl_certificate /home/ubuntu/localhost.crt; + ssl_certificate_key /home/ubuntu/localhost.key; + + location / { + proxy_pass http://localhost:5240; + include /etc/nginx/proxy_params; + } + + location /MAAS/ws { + proxy_pass http://127.0.0.1:5240/MAAS/ws; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "Upgrade"; + } + } + + # create link + sudo ln -s /etc/nginx/sites-available/maas-https-default /etc/nginx/sites-enabled + + # look at errors + cat /var/log/maas/regiond.log + cat regiond.log | grep "Python-http" + *i didn't see any 404's though + + + 2020-12-15 13:24:48 regiond: [info] 127.0.0.1 GET /MAAS/api/2.0/users/?op=whoami HTTP/1.1 --> 200 OK (referrer: -; agent: Python-httplib2/0.9.2 (gzip)) + 2020-12-15 13:24:48 regiond: [info] 127.0.0.1 GET /MAAS/api/2.0/describe/ HTTP/1.1 --> 200 OK (referrer: -; agent: Python-httplib2/0.9.2 (gzip)) + 2020-12-15 14:24:46 regiond: [info] 127.0.0.1 GET /MAAS/api/2.0/describe/ HTTP/1.0 --> 200 OK (referrer: -; agent: Python-httplib2/0.9.2 (gzip)) + + + + + + + # install fixed package + sudo apt install ./python3-httplib2_0.9.2+dfsg-1ubuntu0.2.1_all.deb
-- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1906720 Title: Fix the disable_ssl_certificate_validation option To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/python-httplib2/+bug/1906720/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs