diff --git a/lib/_tls_common.js b/lib/_tls_common.js
index afcc5bc5fa2f96..36b2ebdad68d0b 100644
--- a/lib/_tls_common.js
+++ b/lib/_tls_common.js
@@ -169,12 +169,12 @@ exports.translatePeerCertificate = function translatePeerCertificate(c) {
   if (!c)
     return null;
 
-  if (c.issuer) c.issuer = tls.parseCertString(c.issuer);
-  if (c.issuerCertificate && c.issuerCertificate !== c) {
+  if (c.issuer != null) c.issuer = tls.parseCertString(c.issuer);
+  if (c.issuerCertificate != null && c.issuerCertificate !== c) {
     c.issuerCertificate = translatePeerCertificate(c.issuerCertificate);
   }
-  if (c.subject) c.subject = tls.parseCertString(c.subject);
-  if (c.infoAccess) {
+  if (c.subject != null) c.subject = tls.parseCertString(c.subject);
+  if (c.infoAccess != null) {
     var info = c.infoAccess;
     c.infoAccess = {};
 
diff --git a/test/parallel/test-tls-translate-peer-certificate.js b/test/parallel/test-tls-translate-peer-certificate.js
new file mode 100644
index 00000000000000..a19d7ef18a47b5
--- /dev/null
+++ b/test/parallel/test-tls-translate-peer-certificate.js
@@ -0,0 +1,55 @@
+'use strict';
+const common = require('../common');
+
+if (!common.hasCrypto)
+  common.skip('missing crypto');
+
+const { strictEqual, deepStrictEqual } = require('assert');
+const { translatePeerCertificate } = require('_tls_common');
+
+const certString = 'A=1\nB=2\nC=3';
+const certObject = { A: '1', B: '2', C: '3' };
+
+strictEqual(translatePeerCertificate(null), null);
+strictEqual(translatePeerCertificate(undefined), null);
+
+strictEqual(translatePeerCertificate(0), null);
+strictEqual(translatePeerCertificate(1), 1);
+
+deepStrictEqual(translatePeerCertificate({}), {});
+
+deepStrictEqual(translatePeerCertificate({ issuer: '' }),
+                { issuer: {} });
+deepStrictEqual(translatePeerCertificate({ issuer: null }),
+                { issuer: null });
+deepStrictEqual(translatePeerCertificate({ issuer: certString }),
+                { issuer: certObject });
+
+deepStrictEqual(translatePeerCertificate({ subject: '' }),
+                { subject: {} });
+deepStrictEqual(translatePeerCertificate({ subject: null }),
+                { subject: null });
+deepStrictEqual(translatePeerCertificate({ subject: certString }),
+                { subject: certObject });
+
+deepStrictEqual(translatePeerCertificate({ issuerCertificate: '' }),
+                { issuerCertificate: null });
+deepStrictEqual(translatePeerCertificate({ issuerCertificate: null }),
+                { issuerCertificate: null });
+deepStrictEqual(
+    translatePeerCertificate({ issuerCertificate: { subject: certString } }),
+    { issuerCertificate: { subject: certObject } });
+
+{
+  const cert = {};
+  cert.issuerCertificate = cert;
+  deepStrictEqual(translatePeerCertificate(cert), { issuerCertificate: cert });
+}
+
+deepStrictEqual(translatePeerCertificate({ infoAccess: '' }),
+                { infoAccess: {} });
+deepStrictEqual(translatePeerCertificate({ infoAccess: null }),
+                { infoAccess: null });
+deepStrictEqual(
+    translatePeerCertificate({ infoAccess: 'OCSP - URI:file:///etc/passwd' }),
+    { infoAccess: { 'OCSP - URI': ['file:///etc/passwd'] } });