0

I'm using the Wordpress xmlrpc Python module on Python 3.6 to automatically write and publish blog posts to my Wordpress site (hosted directly by Wordpress).

The program runs great on one of my Windows machines, but when I try to run it using my second Windows machine, with the exact same code, on the same network, I receive an SSL error. Details below:

import ssl

import wordpress_xmlrpc
from wordpress_xmlrpc import Client
from wordpress_xmlrpc import WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts
from wordpress_xmlrpc.methods.posts import NewPost
from wordpress_xmlrpc.methods.users import GetUserInfo
from wordpress_xmlrpc.methods import posts
from wordpress_xmlrpc.compat import xmlrpc_client

wp = Client("https://website.io/xmlrpc.php", "wordpressusername", "wordpresspassword")

post = WordPressPost()
post.title = "title"
post.content = content

post.post_status = 'publish'
status_draft = 0
status_published = 1
wp.call(NewPost(post))

Here's the error:

File "C:\Python36\Lib\http\client.py", line 964, in send
    self.connect()
  File "C:\Python36\Lib\http\client.py", line 1400, in connect
    server_hostname=server_hostname)
  File "C:\Python36\Lib\ssl.py", line 401, in wrap_socket
    _context=self, _session=session)
  File "C:\Python36\Lib\ssl.py", line 808, in __init__
    self.do_handshake()
  File "C:\Python36\Lib\ssl.py", line 1061, in do_handshake
    self._sslobj.do_handshake()
  File "C:\Python36\Lib\ssl.py", line 683, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748)

I've used pip list to view all installed modules on both machines and everything matches exactly. The code is stored on a synced Google Drive folder, so it's literally the exact same .py file both times. I can't understand why it works on one machine but not the other.

I've read the thread here but I don't believe it applies to the wordpress xmlrpc tool. I've read through the documentation here but I can't see anything helpful.

Is this something I have to tweak/delete/refresh the ssl certificates in Chrome or something? Any answers or insight much appreciated. Thanks in advance

SoapGun
  • 1
  • 1

1 Answers1

0

So, 3 weeks later, I finally found a way to fix this.

I ended up completely uninstalling/deleting Python on my secondary machine and reinstalling everything (along with reinstalling all modules, and confirming via pip list) and now it works (no more SSL error).

For what it's worth, and I can't be sure this is what was causing the issue in the first place, but previously, I was running Python 3.6.1 on the working machine and python 3.6.2 on the other, non-working machine.

When I reinstalled everything, I reinstalled Python 3.6.1 (to match the working machine) and it worked on both.

SoapGun
  • 1
  • 1