diff --git a/crypto/cms/cms_test.cc b/crypto/cms/cms_test.cc
index 9a96f38..205cee1 100644
--- a/crypto/cms/cms_test.cc
+++ b/crypto/cms/cms_test.cc
@@ -41,11 +41,16 @@
   // Sign a message with the same call that the Linux kernel's sign-file.c
   // makes.
   std::string cert_pem = GetTestData("crypto/pkcs7/test/sign_cert.pem");
+  std::string cert2_pem = GetTestData("crypto/pkcs7/test/sign_cert2.pem");
   std::string key_pem = GetTestData("crypto/pkcs7/test/sign_key.pem");
   bssl::UniquePtr<BIO> cert_bio(
       BIO_new_mem_buf(cert_pem.data(), cert_pem.size()));
   bssl::UniquePtr<X509> cert(
       PEM_read_bio_X509(cert_bio.get(), nullptr, nullptr, nullptr));
+  bssl::UniquePtr<BIO> cert2_bio(
+      BIO_new_mem_buf(cert2_pem.data(), cert2_pem.size()));
+  bssl::UniquePtr<X509> cert2(
+      PEM_read_bio_X509(cert2_bio.get(), nullptr, nullptr, nullptr));
 
   bssl::UniquePtr<BIO> key_bio(BIO_new_mem_buf(key_pem.data(), key_pem.size()));
   bssl::UniquePtr<EVP_PKEY> key(
@@ -181,4 +186,15 @@
   EXPECT_FALSE(cms);
   EXPECT_TRUE(ErrorEquals(ERR_get_error(), ERR_LIB_CMS,
                           CMS_R_CERTIFICATE_HAS_NO_KEYID));
+
+  // Sign with a certificate that isn't self-signed. The issuer and serial tuple
+  // should use the correct name.
+  ASSERT_TRUE(BIO_reset(data_bio.get()));
+  cms.reset(CMS_sign(cert2.get(), key.get(), nullptr, data_bio.get(),
+                     CMS_DETACHED | CMS_NOCERTS | CMS_NOATTR | CMS_BINARY));
+  ASSERT_TRUE(cms);
+  ASSERT_TRUE(BIO_reset(out.get()));
+  ASSERT_TRUE(i2d_CMS_bio(out.get(), cms.get()));
+  expected = GetTestData("crypto/pkcs7/test/sign_sha256_cert2.p7s");
+  EXPECT_EQ(Bytes(BIOMemContents(out.get())), Bytes(expected));
 }
diff --git a/crypto/pkcs7/pkcs7_x509.cc b/crypto/pkcs7/pkcs7_x509.cc
index dad05af..07975b2 100644
--- a/crypto/pkcs7/pkcs7_x509.cc
+++ b/crypto/pkcs7/pkcs7_x509.cc
@@ -431,7 +431,7 @@
     }
   } else {
     if (!CBB_add_asn1(&seq, &child, CBS_ASN1_SEQUENCE) ||
-        !x509_marshal_name(&child, X509_get_subject_name(si_data->sign_cert)) ||
+        !x509_marshal_name(&child, X509_get_issuer_name(si_data->sign_cert)) ||
         !asn1_marshal_integer(&child,
                               X509_get0_serialNumber(si_data->sign_cert),
                               /*tag=*/0)) {
diff --git a/crypto/pkcs7/test/sign_cert2.pem b/crypto/pkcs7/test/sign_cert2.pem
new file mode 100644
index 0000000..95f7350
--- /dev/null
+++ b/crypto/pkcs7/test/sign_cert2.pem
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIE2DCCAsACCQCeL08RMjYgJjANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJB
+VTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0
+cyBQdHkgTHRkMB4XDTI2MDUxNDAzMzIxMFoXDTI3MDUxNDAzMzIxMFowFzEVMBMG
+A1UEAwwMT3RoZXIgU2lnbmVyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKC
+AgEAtfjDp/gaKXBFUeEDL413QMRpFhZZV8kBQ06C/qjoj0VNcjewvCgrZGzgBbbS
+SDuDv4tImeyqmG55gemFAPzjQHGpKHJ63aBEoESXFTHgMQ5P9dTrTBeciH3jjjv0
+1HlTZgFGk+t4BWysv2naaocybTr/QQZeVXGDRhkhPtMLW5o6ZjbMbpxEEdSiw3Pe
+3xmB3kXyqEsqwiBBPCGgBKShkdkpLt7/ScIe0aY7qYIlAJB+qSZO1TGZub5dsBY2
+L38rII3jeWbbMRQzGj2GUracTMaTXeQvQ7Dti46eTTKRnzRphuGaomkIPM9nCDOh
+EpjdcwyXVIeSF3ndXzsQWQ/6aFBR9MA0RVp785Wj5oyRBa2CzCvLL5xOZxEKfb7v
+dyEhQce3KH7Pp4jGlFzxKmkUqq7onzdjNYrd5Dn//GGZdb7q7PlbRw+pziaOm3dd
+ft+2gYnSAfwWlp8y6w5kk3DxWtbZEx8KC6nPfo04U6vY2esN5QDD6bKHp8g9fVJk
+AefPfuJDadkiDv07c1UAhoED1xNowwpehvWiDzJH76T2SuEx1Ypd1kEQhWJ2HQzu
+B0F6NmbguEYqoGOcoH3qC/n2vZN/N5YMcQB0C0u8bG2lQeNEZn3W3Xr4D2CMGTTT
+u/HXUZjHUr+iJJ0lvYMnRs2P/27WPrdUlnAWVs59RMKvINkCAwEAATANBgkqhkiG
+9w0BAQsFAAOCAgEAbI1udg8Lhg4+mFz0nDmLMM1MPIKxDkD6hLgpI0BmALEXeVIm
+XkCngsl6tKjgZ9RslnJjTfaQB9PdjE3TJ1rktnWZgadKofelznYbn4y3gPISUJ2U
+mQPYa9LTsCLDVcCusgs8iW6xqZBSWYZjylEjnhqWEt3u5FFBtNFFxWuUfRRbR+of
+Ttu8yJyli4TtsKR+IHDgznx+ohOVAr9AO6fmE3VcvDal82pJv8M016EPxzQ4kmAJ
+YQAD4LM0VgNfL4rDNsve8kKONAzn7XW8TS460SqHcDeDx90gx/WyoMpHm21sBPw8
+4PQqJzi/CMHga5phav4c2vt73UlKKt9bEoi/HJy5QJTtW3uYizS8mKQUhU36Aj7K
+ye3Dnr6674joSSo5aPbzTsSSrChzbNFfqk0zP2ev6QYxoyEHqDYM2zqctP++T8EZ
+kSY1/9GuduGysi5hRej1NnSYqeoUhOW99Ye+V4Z3Y5fbnsuLAuCDzb9HF5IeNKvc
+nckMUa7FGoP4H7wOMo4auXxiM5fGKwAj5B5+8jw5YnSSiIY1w+ldp3vJemWz3WVy
+jRO4kSUj+SoQaM129JU7O9yQ8PlEjyF3x8kvJKPJ7buHtRIq5m1htNhOhbmrRFH6
+bhE8Rp6MJtc4nWAjD5RXmYW1hp/xqyJaa36W6j+vTFjRziTR7Yfm27XxjcA=
+-----END CERTIFICATE-----
diff --git a/crypto/pkcs7/test/sign_sha256_cert2.p7s b/crypto/pkcs7/test/sign_sha256_cert2.p7s
new file mode 100644
index 0000000..1c68eda
--- /dev/null
+++ b/crypto/pkcs7/test/sign_sha256_cert2.p7s
Binary files differ
diff --git a/gen/sources.bzl b/gen/sources.bzl
index c30b959..913c7aa 100644
--- a/gen/sources.bzl
+++ b/gen/sources.bzl
@@ -921,10 +921,12 @@
     "crypto/pkcs7/test/nss.p7c",
     "crypto/pkcs7/test/openssl_crl.p7c",
     "crypto/pkcs7/test/sign_cert.pem",
+    "crypto/pkcs7/test/sign_cert2.pem",
     "crypto/pkcs7/test/sign_key.pem",
     "crypto/pkcs7/test/sign_sha1.p7s",
     "crypto/pkcs7/test/sign_sha1_key_id.p7s",
     "crypto/pkcs7/test/sign_sha256.p7s",
+    "crypto/pkcs7/test/sign_sha256_cert2.p7s",
     "crypto/pkcs7/test/sign_sha256_key_id.p7s",
     "crypto/pkcs7/test/windows.p7c",
     "crypto/pkcs8/test/bad1.p12",
diff --git a/gen/sources.cmake b/gen/sources.cmake
index 27f50ff..44b1a09 100644
--- a/gen/sources.cmake
+++ b/gen/sources.cmake
@@ -951,10 +951,12 @@
   crypto/pkcs7/test/nss.p7c
   crypto/pkcs7/test/openssl_crl.p7c
   crypto/pkcs7/test/sign_cert.pem
+  crypto/pkcs7/test/sign_cert2.pem
   crypto/pkcs7/test/sign_key.pem
   crypto/pkcs7/test/sign_sha1.p7s
   crypto/pkcs7/test/sign_sha1_key_id.p7s
   crypto/pkcs7/test/sign_sha256.p7s
+  crypto/pkcs7/test/sign_sha256_cert2.p7s
   crypto/pkcs7/test/sign_sha256_key_id.p7s
   crypto/pkcs7/test/windows.p7c
   crypto/pkcs8/test/bad1.p12
diff --git a/gen/sources.gni b/gen/sources.gni
index acaab66..147cc0f 100644
--- a/gen/sources.gni
+++ b/gen/sources.gni
@@ -921,10 +921,12 @@
   "crypto/pkcs7/test/nss.p7c",
   "crypto/pkcs7/test/openssl_crl.p7c",
   "crypto/pkcs7/test/sign_cert.pem",
+  "crypto/pkcs7/test/sign_cert2.pem",
   "crypto/pkcs7/test/sign_key.pem",
   "crypto/pkcs7/test/sign_sha1.p7s",
   "crypto/pkcs7/test/sign_sha1_key_id.p7s",
   "crypto/pkcs7/test/sign_sha256.p7s",
+  "crypto/pkcs7/test/sign_sha256_cert2.p7s",
   "crypto/pkcs7/test/sign_sha256_key_id.p7s",
   "crypto/pkcs7/test/windows.p7c",
   "crypto/pkcs8/test/bad1.p12",
diff --git a/gen/sources.json b/gen/sources.json
index d866d05..ad7e940 100644
--- a/gen/sources.json
+++ b/gen/sources.json
@@ -901,10 +901,12 @@
       "crypto/pkcs7/test/nss.p7c",
       "crypto/pkcs7/test/openssl_crl.p7c",
       "crypto/pkcs7/test/sign_cert.pem",
+      "crypto/pkcs7/test/sign_cert2.pem",
       "crypto/pkcs7/test/sign_key.pem",
       "crypto/pkcs7/test/sign_sha1.p7s",
       "crypto/pkcs7/test/sign_sha1_key_id.p7s",
       "crypto/pkcs7/test/sign_sha256.p7s",
+      "crypto/pkcs7/test/sign_sha256_cert2.p7s",
       "crypto/pkcs7/test/sign_sha256_key_id.p7s",
       "crypto/pkcs7/test/windows.p7c",
       "crypto/pkcs8/test/bad1.p12",
diff --git a/gen/sources.mk b/gen/sources.mk
index 7eaf370..478d1d7 100644
--- a/gen/sources.mk
+++ b/gen/sources.mk
@@ -907,10 +907,12 @@
   crypto/pkcs7/test/nss.p7c \
   crypto/pkcs7/test/openssl_crl.p7c \
   crypto/pkcs7/test/sign_cert.pem \
+  crypto/pkcs7/test/sign_cert2.pem \
   crypto/pkcs7/test/sign_key.pem \
   crypto/pkcs7/test/sign_sha1.p7s \
   crypto/pkcs7/test/sign_sha1_key_id.p7s \
   crypto/pkcs7/test/sign_sha256.p7s \
+  crypto/pkcs7/test/sign_sha256_cert2.p7s \
   crypto/pkcs7/test/sign_sha256_key_id.p7s \
   crypto/pkcs7/test/windows.p7c \
   crypto/pkcs8/test/bad1.p12 \
