diff --git a/warden_ra/warden_ra.py b/warden_ra/warden_ra.py
index 8d629f1edc18ed6e4588b73d8fea7f48522c57cc..99fa15e58735c8e8596f5d0d85ef945437e58d7a 100755
--- a/warden_ra/warden_ra.py
+++ b/warden_ra/warden_ra.py
@@ -272,6 +272,14 @@ class EjbcaRegistry(OpenSSLRegistry):
         return self.ejbca.get_version()
 
 
+def relaxed_ord(c):
+    # Compatibility wrapper for py2/py3
+    try:
+        return ord(c)
+    except TypeError:
+        return c
+
+
 def format_cert(cert):
     return (
         "Subject:     %s\n"
@@ -283,7 +291,7 @@ def format_cert(cert):
         cert.get_subject().as_text(),
         cert.get_not_before().get_datetime().isoformat(),
         cert.get_not_after().get_datetime().isoformat(),
-        ":".join(["%02x" % ord(c) for c in struct.pack('!Q', cert.get_serial_number())]),
+        ":".join(["%02x" % relaxed_ord(c) for c in struct.pack('!Q', cert.get_serial_number())]),
         cert.get_fingerprint("md5"),
         cert.get_fingerprint("sha1"),
         cert.get_issuer().as_text()