diff --git a/swh/model/identifiers.py b/swh/model/identifiers.py
index 7671ce3b7e32b5d6b9b37aa74953ce765cad17aa..61b838ab516848726cab26b9acc74b7ee9fb05ab 100644
--- a/swh/model/identifiers.py
+++ b/swh/model/identifiers.py
@@ -266,7 +266,10 @@ def revision_identifier(revision):
 
     metadata = revision.get('metadata', {})
     if 'gpgsig' in metadata:
-        components.extend([b'gpgsig', b' ', metadata['gpgsig'], b'\n'])
+        gpgsig = metadata['gpgsig']
+        if isinstance(gpgsig, str):
+            gpgsig = gpgsig.encode('utf-8')
+        components.extend([b'gpgsig', b' ', gpgsig, b'\n'])
 
     if 'extra_headers' in metadata:
         headers = metadata['extra_headers']
diff --git a/swh/model/tests/test_identifiers.py b/swh/model/tests/test_identifiers.py
index c1e6201a16470303e41a060bf7d0ad0cb84aaf97..c8a66f90e9190ea19dc82be995ea9c4fa04da4a1 100644
--- a/swh/model/tests/test_identifiers.py
+++ b/swh/model/tests/test_identifiers.py
@@ -318,7 +318,7 @@ class RevisionIdentifier(unittest.TestCase):
                 'offset': 480,
             },
             'metadata': {
-                'gpgsig': b'''-----BEGIN PGP SIGNATURE-----
+                'gpgsig': '''-----BEGIN PGP SIGNATURE-----
  Version: GnuPG v1.4.13 (Darwin)\n \n iQIcBAABAgAGBQJVJcYsAAoJEBiY3kIkQRNJVAUQAJ8/XQIfMqqC5oYeEFfHOPYZ
  L7qy46bXHVBa9Qd8zAJ2Dou3IbI2ZoF6/Et89K/UggOycMlt5FKV/9toWyuZv4Po
  L682wonoxX99qvVTHo6+wtnmYO7+G0f82h+qHMErxjP+I6gzRNBvRr+SfY7VlGdK