### Preflight Checklist
<!-- Please ensure you've completed the following steps by replacing [ ] with [x]-->

* [x] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
* [x] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
* [x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

### Issue Details



* **Electron Version:**
10.1.2
9.3.1
8.5.1

* **Operating System:**
Ubuntu 18.04.05 x64
Also under Ubuntu 16, 14, 12, and Fedora

* **Last Known Working Electron version:**
7.3.3

### Expected Behavior

Calling importCertificate should call the provided function with an error code indicating whether the certificate was successfully imported.

### Actual Behavior
Calling `importCertificate` results in a crash (segmentation fault usually) under linux. This appears to happen across all versions of electron back to 7.x, on Ubuntu 12-18 and Fedora (tested in VirtualBox, and 18 on a bare-metal server). This appears to happen regardless of whether the cert and password are valid (or even specified).

### To Reproduce

```
./node_modules/.bin/electron -i <<< "const {app} = require('electron'); app.importCertificate({},console.log);"
# Segfault
```

<!--
For bugs that can be encapsulated in a small experiment, you can use Electron Fiddle (https://github.com/electron/fiddle) to publish your example to a GitHub Gist and link it your bug report.
-->

### Screenshots
<!-- If applicable, add screenshots to help explain your problem. -->
<img width="1433" alt="Screen Shot 2020-09-16 at 3 13 51 PM" src="https://user-images.githubusercontent.com/1534774/93397859-4e5b9e80-f82f-11ea-9597-90156aac2221.png">


### Additional Information
<!-- Add any other context about the problem here. -->

chromium_src/chrome/browser/certificate_manager_model.cc
CreationCallback callback) {
  DCHECK_CURRENTLY_ON(BrowserThread::UI);
  base::PostTask(FROM_HERE, {BrowserThread::IO},
                 base::BindOnce(&CertificateManagerModel::GetCertDBOnIOThread,
                                browser_context->GetResourceContext(),
                                std::move(callback)));
}
CertificateManagerModel::CertificateManagerModel(
    net::NSSCertDatabase* nss_cert_database,
    bool is_user_db_available)
    : cert_db_(nss_cert_database), is_user_db_available_(is_user_db_available) {
  DCHECK_CURRENTLY_ON(BrowserThread::UI);
}
CertificateManagerModel::~CertificateManagerModel() = default;
int CertificateManagerModel::ImportFromPKCS12(
    PK11SlotInfo* slot_info,
    const std::string& data,
    const base::string16& password,
    bool is_extractable,
    net::ScopedCERTCertificateList* imported_certs) {
  return cert_db_->ImportFromPKCS12(slot_info, data, password, is_extractable,
                                    imported_certs);
}
int CertificateManagerModel::ImportUserCert(const std::string& data) {
  return cert_db_->ImportUserCert(data);
}
bool CertificateManagerModel::ImportCACerts(