# SSL/Certificate errors when running playbooks against Azure

**URL:** <https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264>\
**Category:** Ansible Project\
**Tags:** azure\
**Created:** [December 12, 2017, 9:03pm UTC](https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264 "2017-12-12T21:03:40Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![JOS](https://avatars.discourse-cdn.com/v4/letter/j/2bfe46/32.png) [@JOS](https://forum.ansible.com/u/JOS)\
**Post date:** [December 12, 2017, 9:03pm UTC](https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264/1 "2017-12-12T21:03:40Z")

</div>

Hello,

So I have an Azure free trial subscription and am trying to deploy VMs for it through ansible. For reference, I mostly followed this guide: [https://github.com/erjosito/ansible-azure-lab](https://github.com/erjosito/ansible-azure-lab)

I am unable to execute any playbook task at all, even something as simple as merely creating a resource group with a network. Here is the error I always get:

fatal: [192.168.0.177]: FAILED! =\> {“changed”: false, “failed”: true, “module\_stderr”: “From cffi callback \<function \_verify\_callback at 0x318b9b0\>:\nTraceback (most recent call last):\n File "/usr/lib/python2.7/site-packages/OpenSSL/SSL.py", line 313, in wrapper\n \_lib.X509\_up\_ref(x509)\nAttributeError: ‘module’ object has no attribute ‘X509\_up\_ref’\nTraceback (most recent call last):\n File "/tmp/ansible\_uaTUwO/ansible\_module\_azure\_rm\_virtualnetwork.py", line 354, in \n main()\n File "/tmp/ansible\_uaTUwO/ansible\_module\_azure\_rm\_virtualnetwork.py", line 351, in main\n AzureRMVirtualNetwork()\n File "/tmp/ansible\_uaTUwO/ansible\_module\_azure\_rm\_virtualnetwork.py", line 206, in **init** \n supports\_check\_mode=True)\n File "/tmp/ansible\_uaTUwO/ansible\_modlib.zip/ansible/module\_utils/azure\_rm\_common.py", line 235, in **init** \n File "/usr/lib/python2.7/site-packages/msrestazure/azure\_active\_directory.py", line 440, in **init** \n self.set\_token()\n File "/usr/lib/python2.7/site-packages/msrestazure/azure\_active\_directory.py", line 473, in set\_token\n raise\_with\_traceback(AuthenticationError, "", err)\n File "/usr/lib/python2.7/site-packages/msrest/exceptions.py", line 48, in raise\_with\_traceback\n raise error\nmsrest.exceptions.AuthenticationError: , SSLError: HTTPSConnectionPool(host=‘[login.microsoftonline.com](http://login.microsoftonline.com/)’, port=443): Max retries exceeded with url: / **b4f64759-blah-blah** /oauth2/token (Caused by SSLError(SSLError("bad handshake: Error([(‘SSL routines’, ‘ssl3\_get\_server\_certificate’, ‘certificate verify failed’)],)",),))\n”, “module\_stdout”: “”, “msg”: “MODULE FAILURE”, “rc”: 0}

I am able to connect to azure via the azure CLI create VMs and such through a bash script, but I need to get this working with ansible.

My credentials file

subscription\_id=5eff-blah-blah  
client\_id=83e09b01-blah-blah  
secret=passwordblahblah  
tenant=b4f64759-blah-blah

Sample yml

- name: whatever

hosts: localhost  
connection: local

tasks:

- name: Create virtual network  
azure\_rm\_virtualnetwork:  
resource\_group: myResourceGroup  
name: myVnet  
address\_prefixes: “[10.10.0.0/16](http://10.10.0.0/16)”

I have even tried modifying my credentials file to include the azure AD username & password (yes, I know this is considered bad practice, but I got desperate) and it still fails with a certificate error:

ad\_user=[dummy@dummy.com](mailto:dummy@dummy.com)

password=DummyLab  
subscription\_id=5eff-blah-blah

fatal: [192.168.0.177]: FAILED! =\> {“changed”: false, “failed”: true, “module\_stderr”: “From cffi callback \<function \_verify\_callback at 0x30f3938\>:\nTraceback (most recent call last):\n File "/usr/lib/python2.7/site-packages/OpenSSL/SSL.py", line 313, in wrapper\n \_lib.X509\_up\_ref(x509)\nAttributeError: ‘module’ object has no attribute ‘X509\_up\_ref’\nTraceback (most recent call last):\n File "/tmp/ansible\_B6bKF3/ansible\_module\_azure\_rm\_virtualnetwork.py", line 354, in \n main()\n File "/tmp/ansible\_B6bKF3/ansible\_module\_azure\_rm\_virtualnetwork.py", line 351, in main\n AzureRMVirtualNetwork()\n File "/tmp/ansible\_B6bKF3/ansible\_module\_azure\_rm\_virtualnetwork.py", line 206, in **init** \n supports\_check\_mode=True)\n File "/tmp/ansible\_B6bKF3/ansible\_modlib.zip/ansible/module\_utils/azure\_rm\_common.py", line 245, in **init** \n File "/usr/lib/python2.7/site-packages/msrestazure/azure\_active\_directory.py", line 367, in **init** \n self.set\_token()\n File "/usr/lib/python2.7/site-packages/msrestazure/azure\_active\_directory.py", line 404, in set\_token\n raise\_with\_traceback(AuthenticationError, "", err)\n File "/usr/lib/python2.7/site-packages/msrest/exceptions.py", line 48, in raise\_with\_traceback\n raise error\nmsrest.exceptions.AuthenticationError: , SSLError: HTTPSConnectionPool(host=‘[login.microsoftonline.com](http://login.microsoftonline.com/)’, port=443): Max retries exceeded with url: /common/oauth2/token (Caused by SSLError(SSLError("bad handshake: Error([(‘SSL routines’, ‘ssl3\_get\_server\_certificate’, ‘certificate verify failed’)],)",),))\n”, “module\_stdout”: “”, “msg”: “MODULE FAILURE”, “rc”: 0}

---

<div class="post-metadata">

**Author:** ![JOS](https://avatars.discourse-cdn.com/v4/letter/j/2bfe46/32.png) [@JOS](https://forum.ansible.com/u/JOS)\
**Post date:** [December 18, 2017, 7:15pm UTC](https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264/2 "2017-12-18T19:15:58Z")

</div>

For anyone else that runs into this, it looks like I had several different versions of python and out dated components, I reinstalled everything from scratch and no longer have this issue.

---

<div class="post-metadata">

**Author:** ![david\_diez](https://avatars.discourse-cdn.com/v4/letter/d/57b2e6/32.png) [@david\_diez](https://forum.ansible.com/u/david_diez)\
**Post date:** [January 23, 2018, 8:06pm UTC](https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264/3 "2018-01-23T20:06:14Z")

</div>

Hi Jos,  
Could you please specify what version of python and what components were outdated? I seem to be running into the same problem

---

<div class="post-metadata">

**Author:** ![Mahaboob\_Basha](https://avatars.discourse-cdn.com/v4/letter/m/9dc877/32.png) [@Mahaboob\_Basha](https://forum.ansible.com/u/Mahaboob_Basha)\
**Post date:** [August 22, 2018, 6:53am UTC](https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264/4 "2018-08-22T06:53:41Z")

</div>

Hi, I am getting the same exception now. Can you please help me, how you have fixed this issue.

---

<div class="post-metadata">

**Author:** ![Stephane\_Emilien](https://avatars.discourse-cdn.com/v4/letter/s/5fc32e/32.png) [@Stephane\_Emilien](https://forum.ansible.com/u/Stephane_Emilien)\
**Post date:** [August 25, 2018, 11:15am UTC](https://forum.ansible.com/t/ssl-certificate-errors-when-running-playbooks-against-azure/26264/5 "2018-08-25T11:15:27Z")

</div>

Hi,  
The OP most likely has an issue on his cacert (somekind of repository used for certificate validation)

Could you run the following command on the machine which is executing the code(in the OP case: 192.168.0.177) and send us the output

`  
curl -IvL [https://login.microsoftonline.com](https://login.microsoftonline.com)

`

If your ansible version is \>= 2.5, you can use the parameter ( cert\_validation\_mode: ignore ) to skip the error but this impend some security risk as it won’t check for the certificate validity.

- SDE
