diff --git http_cache_transaction.cc http_cache_transaction.cc
index 24002d75215d..2a44a6368558 100644
--- http_cache_transaction.cc
+++ http_cache_transaction.cc
@@ -2601,7 +2601,8 @@ int HttpCache::Transaction::WriteResponseInfoToEntry(bool truncated) {
   // blocking page is shown.  An alternative would be to reverse-map the cert
   // status to a net error and replay the net error.
   if ((response_.headers->HasHeaderValue("cache-control", "no-store")) ||
-      IsCertStatusError(response_.ssl_info.cert_status)) {
+      (!cache_->GetSession()->params().ignore_certificate_errors &&
+       IsCertStatusError(response_.ssl_info.cert_status))) {
     DoneWritingToEntry(false);
     if (net_log_.IsCapturing())
       net_log_.EndEvent(NetLogEventType::HTTP_CACHE_WRITE_INFO);
