Compare commits
	
		
			No commits in common. "master" and "v1.1.1" have entirely different histories.
		
	
	
		
	
		
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@ -7,8 +7,6 @@ lib-cov
 | 
			
		||||
*.pid
 | 
			
		||||
*.gz
 | 
			
		||||
 | 
			
		||||
pems/*.*
 | 
			
		||||
 | 
			
		||||
pids
 | 
			
		||||
logs
 | 
			
		||||
results
 | 
			
		||||
 | 
			
		||||
@ -1,255 +0,0 @@
 | 
			
		||||
# Painless Self Signed Certificates in node.js
 | 
			
		||||
 | 
			
		||||
# Try the code
 | 
			
		||||
 | 
			
		||||
I made a complete, cloneable example:
 | 
			
		||||
 | 
			
		||||
https://git.coolaj86.com/coolaj86/nodejs-self-signed-certificate-example
 | 
			
		||||
 | 
			
		||||
# TL;DR
 | 
			
		||||
 | 
			
		||||
If you don't like to read you can just **copy and paste** this into your terminal.
 | 
			
		||||
 | 
			
		||||
## Create your Root CA and your Signed Certificate
 | 
			
		||||
 | 
			
		||||
**STOP**: There is one thing you need to change: Replace `CN=local.ldsconnect.org` with your domain. 
 | 
			
		||||
 | 
			
		||||
**HOWEVER**, `local.ldsconnect.org` points to `127.0.0.1`, so this example will work if you simply copy and paste with 0 modifications.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
# make directories to work from
 | 
			
		||||
mkdir -p server/ client/ all/
 | 
			
		||||
 | 
			
		||||
# Create your very own Root Certificate Authority
 | 
			
		||||
openssl genrsa \
 | 
			
		||||
  -out all/my-private-root-ca.key.pem \
 | 
			
		||||
  2048
 | 
			
		||||
 | 
			
		||||
# Self-sign your Root Certificate Authority
 | 
			
		||||
# Since this is private, the details can be as bogus as you like
 | 
			
		||||
openssl req \
 | 
			
		||||
  -x509 \
 | 
			
		||||
  -new \
 | 
			
		||||
  -nodes \
 | 
			
		||||
  -key all/my-private-root-ca.key.pem \
 | 
			
		||||
  -days 1024 \
 | 
			
		||||
  -out all/my-private-root-ca.crt.pem \
 | 
			
		||||
  -subj "/C=US/ST=Utah/L=Provo/O=ACME Signing Authority Inc/CN=example.com"
 | 
			
		||||
 | 
			
		||||
# Create a Device Certificate for each domain,
 | 
			
		||||
# such as example.com, *.example.com, awesome.example.com
 | 
			
		||||
# NOTE: You MUST match CN to the domain name or ip address you want to use
 | 
			
		||||
openssl genrsa \
 | 
			
		||||
  -out all/my-server.key.pem \
 | 
			
		||||
  2048
 | 
			
		||||
 | 
			
		||||
# Create a request from your Device, which your Root CA will sign
 | 
			
		||||
openssl req -new \
 | 
			
		||||
  -key all/my-server.key.pem \
 | 
			
		||||
  -out all/my-server.csr.pem \
 | 
			
		||||
  -subj "/C=US/ST=Utah/L=Provo/O=ACME Tech Inc/CN=local.ldsconnect.org"
 | 
			
		||||
 | 
			
		||||
# Sign the request from Device with your Root CA
 | 
			
		||||
openssl x509 \
 | 
			
		||||
  -req -in all/my-server.csr.pem \
 | 
			
		||||
  -CA all/my-private-root-ca.crt.pem \
 | 
			
		||||
  -CAkey all/my-private-root-ca.key.pem \
 | 
			
		||||
  -CAcreateserial \
 | 
			
		||||
  -out all/my-server.crt.pem \
 | 
			
		||||
  -days 500
 | 
			
		||||
 | 
			
		||||
# Put things in their proper place
 | 
			
		||||
rsync -a all/my-server.{key,crt}.pem server/
 | 
			
		||||
rsync -a all/my-private-root-ca.crt.pem server/
 | 
			
		||||
rsync -a all/my-private-root-ca.crt.pem client/
 | 
			
		||||
```
 | 
			
		||||
The only **3 files** you need **on your server** are these:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
server
 | 
			
		||||
├── my-private-root-ca.crt.pem
 | 
			
		||||
├── my-server.crt.pem
 | 
			
		||||
└── my-server.key.pem
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
The **1 file** you need **on your clients** is this:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
client
 | 
			
		||||
└── my-private-root-ca.crt.pem
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Your server
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
#!/usr/bin/env node
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var https = require('https')
 | 
			
		||||
  , port = process.argv[2] || 4443
 | 
			
		||||
  , fs = require('fs')
 | 
			
		||||
  , path = require('path')
 | 
			
		||||
  , server
 | 
			
		||||
  , options
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
require('ssl-root-cas')
 | 
			
		||||
  .inject()
 | 
			
		||||
  .addFile(path.join(__dirname, 'server', 'my-private-root-ca.crt.pem'))
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
options = {
 | 
			
		||||
  key: fs.readFileSync(path.join(__dirname, 'server', 'my-server.key.pem'))
 | 
			
		||||
// You don't need to specify `ca`, it's done by `ssl-root-cas`
 | 
			
		||||
//, ca: [ fs.readFileSync(path.join(__dirname, 'server', 'my-private-root-ca.crt.pem'))]
 | 
			
		||||
, cert: fs.readFileSync(path.join(__dirname, 'server', 'my-server.crt.pem'))
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
function app(req, res) {
 | 
			
		||||
  res.setHeader('Content-Type', 'text/plain');
 | 
			
		||||
  res.end('Hello, encrypted world!');
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
server = https.createServer(options, app).listen(port, function () {
 | 
			
		||||
  port = server.address().port;
 | 
			
		||||
  console.log('Listening on https://127.0.0.1:' + port);
 | 
			
		||||
  console.log('Listening on https://' + server.address().address + ':' + port);
 | 
			
		||||
  console.log('Listening on https://local.ldsconnect.org:' + port);
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Your client
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
#!/usr/bin/env node
 | 
			
		||||
var https = require('https')
 | 
			
		||||
  , fs = require('fs')
 | 
			
		||||
  , path = require('path')
 | 
			
		||||
  , ca = fs.readFileSync(path.join(__dirname, 'client', 'my-private-root-ca.crt.pem'))
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
var options = {
 | 
			
		||||
  host: 'local.ldsconnect.org',
 | 
			
		||||
  path: '/',
 | 
			
		||||
  ca: ca
 | 
			
		||||
};
 | 
			
		||||
options.agent = new https.Agent(options);
 | 
			
		||||
 | 
			
		||||
https.request(options, function(res) {
 | 
			
		||||
  res.pipe(process.stdout);
 | 
			
		||||
}).end();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
# What you need to know
 | 
			
		||||
 | 
			
		||||
I struggled for a bit with self-signed certificates until I found out that **YOU'RE NOT SUPPOSED TO SERVE SELF-SIGNED CERTIFICATES**.
 | 
			
		||||
 | 
			
		||||
Seriously. They're not supposed to be public-facing. And that's why you get some many various types of errors that are difficult to resolve such as `SSL certificate problem: Invalid certificate chain` and `DEPTH_ZERO_SELF_SIGNED_CERT`.
 | 
			
		||||
 | 
			
		||||
The purpose of self-signed certificates is for Root CAs to hide them away in a safe place and occasionally sign 2nd-tier certificates which sign 3rd-tier certificates which sign... and so forth until you pay just $24.97 for an Nth-tier certificate that only works in the most recent browsers and devices.
 | 
			
		||||
 | 
			
		||||
So here's how to win:
 | 
			
		||||
 | 
			
		||||
* Create a CA - **KEEP IT PRIVATE** (your server never sees it except the `.crt.pem`)
 | 
			
		||||
* Self-sign your CA
 | 
			
		||||
* Create a **server certificate**
 | 
			
		||||
* Sign your public-facing cert **THIS IS PUBLIC** (but none of it ever leaves your server and the clients never see any of it)
 | 
			
		||||
 | 
			
		||||
## Create A Certificate Authority
 | 
			
		||||
 | 
			
		||||
Since this is for **private** use and testing it doesn't much matter if the information is correct or not.
 | 
			
		||||
 | 
			
		||||
If you want, you can just copy and paste this directly:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
openssl genrsa \
 | 
			
		||||
  -out my-private-root-ca.key.pem \
 | 
			
		||||
  2048
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
That creates a key *without a passphrase*. If you want to protect this key with a passphrase, add the option `-des3`.
 | 
			
		||||
 | 
			
		||||
## Sign your Certificate Authority with itself
 | 
			
		||||
 | 
			
		||||
Normally you have to create a signing request (csr.pem) and then have it signed. This does both in one step.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
openssl req \
 | 
			
		||||
  -x509 \
 | 
			
		||||
  -new \
 | 
			
		||||
  -nodes \
 | 
			
		||||
  -key my-private-root-ca.key.pem \
 | 
			
		||||
  -days 1024 \
 | 
			
		||||
  -out my-private-root-ca.crt.pem \
 | 
			
		||||
  -subj "/C=US/ST=Utah/L=Provo/O=ACME Signing Authority Inc/CN=example.com"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* `-new` means your generating a new signature, this is why you don't have to provide an infile
 | 
			
		||||
* `-key` is the key you're using to sign it
 | 
			
		||||
* `-nodes` means "no des" or "don't encrypt with a des cipher" or, most simply, "no password"
 | 
			
		||||
 | 
			
		||||
If you want to keep this cert in a safe place and sign lots of stuff with it, then you should put a passphrase on it.
 | 
			
		||||
 | 
			
		||||
## Create your SERVER cert
 | 
			
		||||
 | 
			
		||||
Looks pretty familiar, eh?
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
openssl genrsa \
 | 
			
		||||
  -out my-server.key.pem \
 | 
			
		||||
  2048
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## Create a signing request (csr.pem)
 | 
			
		||||
 | 
			
		||||
It's important to note that **the CN MUST match YOUR domain**.
 | 
			
		||||
 | 
			
		||||
If I want to use this certificate with `api.example.com` then it must say exactly that, `example.com` will not work. And although `*.example.com` is a valid wildcard for `api.example.com`, it will not work for `example.com` (you would need two certificates, and SNL vhosting or the [v3_req subjectAltName extension](http://techbrahmana.blogspot.com/2013/10/creating-wildcard-self-signed.html))
 | 
			
		||||
 | 
			
		||||
**CN** may also be an IP address.
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
openssl req -new \
 | 
			
		||||
  -key my-server.key.pem \
 | 
			
		||||
  -out my-server.csr.pem \
 | 
			
		||||
  -subj "/C=US/ST=Utah/L=Provo/O=ACME Tech Inc/CN=awesome.example.com"
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
I recommend using a different `O`rganization name, just so that it's easier to spot and debug at-a-glance in browsers and whatnot.
 | 
			
		||||
 | 
			
		||||
## Sign your server cert with your CA
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
openssl x509 \
 | 
			
		||||
  -req -in my-server.csr.pem \
 | 
			
		||||
  -CA my-private-root-ca.crt.pem \
 | 
			
		||||
  -CAkey my-private-root-ca.key.pem \
 | 
			
		||||
  -CAcreateserial \
 | 
			
		||||
  -out my-server.crt.pem \
 | 
			
		||||
  -days 500
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
* `-days` should be fewer than you specified in your certificate authority
 | 
			
		||||
 | 
			
		||||
# Appendix
 | 
			
		||||
 | 
			
		||||
**pem**: Just so you know, *pem* means **plain-text format** (but the acronym is something about email and mime types)
 | 
			
		||||
 | 
			
		||||
Other SSL Resources
 | 
			
		||||
=========
 | 
			
		||||
 | 
			
		||||
Zero-Config clone 'n' run (tm) Repos:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* [io.js / node.js HTTPS SSL Example](https://github.com/coolaj86/nodejs-ssl-example)
 | 
			
		||||
* [io.js / node.js HTTPS SSL Self-Signed Certificate Example](https://git.coolaj86.com/coolaj86/nodejs-self-signed-certificate-example)
 | 
			
		||||
* [io.js / node.js HTTPS SSL Trusted Peer Client Certificate Example](https://github.com/coolaj86/nodejs-ssl-trusted-peer-example)
 | 
			
		||||
* [SSL Root CAs](https://github.com/coolaj86/node-ssl-root-cas)
 | 
			
		||||
 | 
			
		||||
Articles
 | 
			
		||||
 | 
			
		||||
* [http://greengeckodesign.com/blog/2013/06/15/creating-an-ssl-certificate-for-node-dot-js/](Creating an SSL Certificate for node.js)
 | 
			
		||||
* [http://www.hacksparrow.com/express-js-https-server-client-example.html/comment-page-1](HTTPS Trusted Peer Example)
 | 
			
		||||
* [How to Create a CSR for HTTPS SSL (demo with name.com, node.js)](https://coolaj86.com/articles/how-to-create-a-csr-for-https-tls-ssl-rsa-pems/)
 | 
			
		||||
* [coolaj86/Painless-Self-Signed-Certificates-in-node](https://github.com/coolaj86/ssl-root-cas.js/master/Painless-Self-Signed-Certificates-in-node.js.md)
 | 
			
		||||
							
								
								
									
										455
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										455
									
								
								README.md
									
									
									
									
									
								
							@ -1,71 +1,7 @@
 | 
			
		||||
IMPORTANT: Try this first
 | 
			
		||||
=========
 | 
			
		||||
 | 
			
		||||
2015-Jul-13: I just discovered that the most common reason you would have the kind of problems this module solves is actually due to **failing to properly bundle the Intermediate CAs** with the server certificate.
 | 
			
		||||
 | 
			
		||||
**Incorrect Example**
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
// INCORRECT (but might still work)
 | 
			
		||||
var server https.createServer({
 | 
			
		||||
  key: fs.readFileSync('privkey.pem', 'ascii')
 | 
			
		||||
, cert: fs.readFileSync('cert.pem', 'ascii')   // a PEM containing ONLY the SERVER certificate
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**Correct Example**
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
// CORRECT (should always work)
 | 
			
		||||
var server https.createServer({
 | 
			
		||||
  key: fs.readFileSync('privkey.pem', 'ascii')
 | 
			
		||||
, cert: fs.readFileSync('fullchain.pem', 'ascii') // a PEM containing the SERVER and ALL INTERMEDIATES
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
# Test your HTTPS effortlessly
 | 
			
		||||
npm -g install serve-https
 | 
			
		||||
 | 
			
		||||
serve-https --servername example.com --cert ./fullchain.pem --key ./privkey.pem
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You can debug the certificate chain with `openssl`:
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
openssl s_client -showcerts \
 | 
			
		||||
  -connect example.com:443 \
 | 
			
		||||
  -servername example.com
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
**Example `fullchain.pem`**
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
cat \
 | 
			
		||||
 cert.pem \
 | 
			
		||||
 intermediate-twice-removed.pem \
 | 
			
		||||
 interemediate-once-removed.pem \
 | 
			
		||||
 > fullchain.pem
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Note that you **should not** include the `root.pem` in the bundle and that the bundle should be constructed with the least authoritative certificate first - your server's certificate, followed by the furthest removed intermediate, and then the next closest to the root, etc.
 | 
			
		||||
 | 
			
		||||
Also note that in the case of cross-signed certificates (typically only issued from new root certificate authorities) there may be more than one intermediate at equal distances, in which case either in that tier may come first.
 | 
			
		||||
 | 
			
		||||
IMPORTANT: Try this next
 | 
			
		||||
========================
 | 
			
		||||
 | 
			
		||||
As of node.js v7.3 the `NODE_EXTRA_CA_CERTS` environment variable can accomplish what most people intend to do with this package. See nodejs/node#9139
 | 
			
		||||
 | 
			
		||||
```bash
 | 
			
		||||
NODE_EXTRA_CA_CERTS='./path/to/root-cas.pem' node example.js
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
SSL Root CAs
 | 
			
		||||
=================
 | 
			
		||||
 | 
			
		||||
The module you need to solve node's SSL woes when including a custom certificate. Particularly, if you need to add a **non-standard Root CA**, then this is the right module for you.
 | 
			
		||||
The module you need to solve node's SSL woes when including a custom certificate.
 | 
			
		||||
 | 
			
		||||
Let's say you're trying to connect to a site with a cheap-o SSL cert -
 | 
			
		||||
such as RapidSSL certificate from [name.com](http://name.com) (the **best** place to get your domains, btw) -
 | 
			
		||||
@ -73,118 +9,27 @@ you'll probably get an error like `UNABLE_TO_VERIFY_LEAF_SIGNATURE` and after yo
 | 
			
		||||
out you'll be able to connect to that site just fine, but now when you try to connect to other sites you get
 | 
			
		||||
`CERT_UNTRUSTED` or possibly other errors.
 | 
			
		||||
 | 
			
		||||
**Common Errors**
 | 
			
		||||
 | 
			
		||||
* `CERT_UNTRUSTED` - the common root CAs are missing, this module fixes that.
 | 
			
		||||
* `UNABLE_TO_VERIFY_LEAF_SIGNATURE` could be either the same as the above, or the below
 | 
			
		||||
* `unable to verify the first certificate` - the intermediate certificate wasn't bundled along with the server certificate, you'll need to fix that
 | 
			
		||||
 | 
			
		||||
This module is the solution to your woes!
 | 
			
		||||
 | 
			
		||||
FYI, I'm merely the publisher, not the author of this module.
 | 
			
		||||
See here: https://groups.google.com/d/msg/nodejs/AjkHSYmiGYs/1LfNHbMhd48J
 | 
			
		||||
 | 
			
		||||
The script downloads the same root CAs that are included with
 | 
			
		||||
[Mozilla Firefox](http://www.mozilla.org/en-US/about/governance/policies/security-group/certs/included/),
 | 
			
		||||
[Google Chrome](http://www.chromium.org/Home/chromium-security/root-ca-policy),
 | 
			
		||||
[`libnss`](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS#CA_certificates_pre-loaded_into_NSS),
 | 
			
		||||
and [OpenSSL](https://www.openssl.org/support/faq.html#USER16)\*:
 | 
			
		||||
<https://mxr.mozilla.org/nss/source/lib/ckfw/builtins/certdata.txt?raw=1>
 | 
			
		||||
 | 
			
		||||
\* OpenSSL doesn't actually bundle these CAs, but they suggest using them
 | 
			
		||||
 | 
			
		||||
**Other Implementations**
 | 
			
		||||
 | 
			
		||||
  * Golang <https://github.com/agl/extract-nss-root-certs>
 | 
			
		||||
  * Perl <https://github.com/bagder/curl/blob/master/lib/mk-ca-bundle.pl>
 | 
			
		||||
 | 
			
		||||
**Usage Examples**
 | 
			
		||||
 | 
			
		||||
  * https://github.com/coolaj86/nodejs-self-signed-certificate-example
 | 
			
		||||
  * https://github.com/coolaj86/nodejs-ssl-trusted-peer-example
 | 
			
		||||
 | 
			
		||||
Install
 | 
			
		||||
=====
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
npm install ssl-root-cas --save
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Usage
 | 
			
		||||
=====
 | 
			
		||||
 | 
			
		||||
General usage:
 | 
			
		||||
 | 
			
		||||
```js
 | 
			
		||||
'use strict';
 | 
			
		||||
var rootCas = require('ssl-root-cas/latest').create();
 | 
			
		||||
 | 
			
		||||
// default for all https requests
 | 
			
		||||
// (whether using https directly, request, or another module)
 | 
			
		||||
require('https').globalAgent.options.ca = rootCas;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### CERT_UNTRUSTED
 | 
			
		||||
 | 
			
		||||
`CERT_UNTRUSTED`
 | 
			
		||||
 | 
			
		||||
**Old Versions of node.js**:
 | 
			
		||||
 | 
			
		||||
If you have to run an old version of node, but need the latest CAs
 | 
			
		||||
(i.e. you get `CERT_UNTRUSTED` on well-known and properly configured websites)
 | 
			
		||||
then this alone should solve your problems:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
var rootCas = require('ssl-root-cas/latest').create();
 | 
			
		||||
 | 
			
		||||
// fixes ALL https requests (whether using https directly or the request module)
 | 
			
		||||
require('https').globalAgent.options.ca = rootCas;
 | 
			
		||||
 | 
			
		||||
var secureContext = require('tls').createSecureContext({
 | 
			
		||||
  ca: rootCas
 | 
			
		||||
// ...
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**missing Root CA** (such as a company ca)
 | 
			
		||||
 | 
			
		||||
If you have a newer version of node and still get `CERT_UNTRUSTED`, it's probably
 | 
			
		||||
because you're testing against a self-signed or company-issued certificate.
 | 
			
		||||
 | 
			
		||||
Follow the instructions above, but also use `addFile`, like this:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
var rootCas = require('ssl-root-cas/latest').create();
 | 
			
		||||
 | 
			
		||||
rootCas.addFile(__dirname + '/ssl/00-company-root-ca.pem');
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### unable to verify the first certificate
 | 
			
		||||
 | 
			
		||||
`unable to verify the first certificate`
 | 
			
		||||
 | 
			
		||||
When you get this error it means that the webserver you are connecting to
 | 
			
		||||
is misconfigured and did not include the intermediate certificates in the certificate
 | 
			
		||||
it sent to you.
 | 
			
		||||
 | 
			
		||||
You can work around this by adding the missing certificate:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
'use strict';
 | 
			
		||||
 
 | 
			
		||||
var rootCas = require('ssl-root-cas/latest').create();
 | 
			
		||||
 | 
			
		||||
rootCas
 | 
			
		||||
// This will add the well-known CAs
 | 
			
		||||
// to `https.globalAgent.options.ca`
 | 
			
		||||
require('ssl-root-cas/latest')
 | 
			
		||||
  .inject()
 | 
			
		||||
  .addFile(__dirname + '/ssl/01-cheap-ssl-intermediary-a.pem')
 | 
			
		||||
  .addFile(__dirname + '/ssl/02-cheap-ssl-intermediary-b.pem')
 | 
			
		||||
  .addFile(__dirname + '/ssl/03-cheap-ssl-site.pem')
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
// will work with all https requests will all libraries (i.e. request.js)
 | 
			
		||||
require('https').globalAgent.options.ca = rootCas;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### using the latest certificates
 | 
			
		||||
 | 
			
		||||
For the sake of version consistency this package ships with the CA certs that were
 | 
			
		||||
available at the time it was published,
 | 
			
		||||
but for the sake of security I recommend you use the latest ones.
 | 
			
		||||
@ -193,22 +38,25 @@ If you want the latest certificates (downloaded as part of the postinstall proce
 | 
			
		||||
you can require those like so:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
var rootCas = require('ssl-root-cas/latest').create();
 | 
			
		||||
 | 
			
		||||
require('https').globalAgent.options.ca = rootCas;
 | 
			
		||||
require('ssl-root-cas/latest').inject();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
You can use the ones that shippped with package like so:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
var rootCas = require('ssl-root-cas').create();
 | 
			
		||||
 | 
			
		||||
require('https').globalAgent.options.ca = rootCas;
 | 
			
		||||
require('ssl-root-cas').inject();
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
API
 | 
			
		||||
---
 | 
			
		||||
 | 
			
		||||
### inject()
 | 
			
		||||
 | 
			
		||||
I thought it might be rude to modify `https.globalAgent.options.ca` on `require`,
 | 
			
		||||
so I afford you the opportunity to `inject()` the certs at your leisure.
 | 
			
		||||
 | 
			
		||||
`inject()` keeps track of whether or not it's been run, so no worries about calling it twice.
 | 
			
		||||
 | 
			
		||||
### addFile(filepath)
 | 
			
		||||
 | 
			
		||||
This is just a convenience method so that you don't
 | 
			
		||||
@ -223,12 +71,12 @@ require('ssl-root-cas/latest')
 | 
			
		||||
is the same as
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
var https = require('https');
 | 
			
		||||
var cas;
 | 
			
		||||
var https = require('https')
 | 
			
		||||
  , cas
 | 
			
		||||
  ;
 | 
			
		||||
 
 | 
			
		||||
cas = https.globalAgent.options.ca || [];
 | 
			
		||||
cas.push(fs.readFileSync(path.join(__dirname, 'ssl', '03-cheap-ssl-site.pem')));
 | 
			
		||||
https.globalAgent.options.ca = cas;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### rootCas
 | 
			
		||||
@ -238,64 +86,7 @@ them, or you just prefer to
 | 
			
		||||
`https.globalAgent.options.ca = require('ssl-root-cas').rootCas;`
 | 
			
		||||
yourself, well, you can.
 | 
			
		||||
 | 
			
		||||
### inject()
 | 
			
		||||
 | 
			
		||||
(deprecated)
 | 
			
		||||
 | 
			
		||||
I thought it might be rude to modify `https.globalAgent.options.ca` on `require`,
 | 
			
		||||
so I afford you the opportunity to `inject()` the certs at your leisure.
 | 
			
		||||
 | 
			
		||||
`inject()` keeps track of whether or not it's been run, so no worries about calling it twice.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Kinda Bad Ideas
 | 
			
		||||
=====
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
    'use strict';
 | 
			
		||||
 | 
			
		||||
    var request = require('@coolaj86/urequest');
 | 
			
		||||
    var agentOptions;
 | 
			
		||||
    var agent;
 | 
			
		||||
 | 
			
		||||
    agentOptions = {
 | 
			
		||||
      host: 'www.example.com'
 | 
			
		||||
    , port: '443'
 | 
			
		||||
    , path: '/'
 | 
			
		||||
    , rejectUnauthorized: false
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    agent = new https.Agent(agentOptions);
 | 
			
		||||
 | 
			
		||||
    request({
 | 
			
		||||
      url: "https://www.example.com/api/endpoint"
 | 
			
		||||
    , method: 'GET'
 | 
			
		||||
    , agent: agent
 | 
			
		||||
    }, function (err, resp, body) {
 | 
			
		||||
      // ...
 | 
			
		||||
    });
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
By using an `agent` with `rejectUnauthorized` you at limit the security vulnerability to the requests that deal with that one site instead of making your entire node process completely, utterly insecure.
 | 
			
		||||
 | 
			
		||||
### Other Options
 | 
			
		||||
 | 
			
		||||
If you were using a self-signed cert you would add this option:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
    agentOptions.ca = [ selfSignedRootCaPemCrtBuffer ];
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
For trusted-peer connections you would also add these 2 options:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
    agentOptions.key = clientPemKeyBuffer;
 | 
			
		||||
    agentOptions.cert = clientPemCrtSignedBySelfSignedRootCaBuffer;
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
REALLY Bad Ideas
 | 
			
		||||
BAD IDEAS
 | 
			
		||||
===
 | 
			
		||||
 | 
			
		||||
Don't use dissolutions such as these. :-)
 | 
			
		||||
@ -314,211 +105,3 @@ The same dissolution from the terminal would be
 | 
			
		||||
export NODE_TLS_REJECT_UNAUTHORIZED="0"
 | 
			
		||||
node my-service.js
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
It's unfortunate that `process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0';` is even documented. It should only be used for debugging and should never make it into in sort of code that runs in the wild. Almost every library that runs atop `https` has a way of passing agent options through. Those that don't should be fixed.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Appendix
 | 
			
		||||
 | 
			
		||||
Other information you might want to know while you're here.
 | 
			
		||||
 | 
			
		||||
## Generating an SSL Cert
 | 
			
		||||
 | 
			
		||||
Just in case you didn't know, here's how you do it:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout server.key -out server.csr
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
**DO NOT FILL OUT** email address, challenge password, or optional company name
 | 
			
		||||
 | 
			
		||||
However, you *should* fill out country name, FULL state name, locality name, organization name.
 | 
			
		||||
 | 
			
		||||
*organizational unit* is optional.
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
cat server.csr
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
That created a signing request with a sha-256 hash.
 | 
			
		||||
 | 
			
		||||
When you submit that to the likes of RapidSSL you'll get back an X.509 that you should call `server.crt.pem` (at least for the purposes of this mini-tutorial).
 | 
			
		||||
 | 
			
		||||
You **must** use a bundled certificate for your server (the server and intermediates, **not** root) and pass that as the `cert` option, **not** as the `ca` (which is used for peer-certificate checking).
 | 
			
		||||
 | 
			
		||||
### A single HTTPS server
 | 
			
		||||
 | 
			
		||||
Here's a complete working example:
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var https = require('https');
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
var express = require('express');
 | 
			
		||||
var app = express();
 | 
			
		||||
var sslOptions;
 | 
			
		||||
var server;
 | 
			
		||||
var port = 4080;
 | 
			
		||||
 | 
			
		||||
require('ssl-root-cas/latest')
 | 
			
		||||
  .inject()
 | 
			
		||||
  .addFile(__dirname + '/ssl/Geotrust Cross Root CA.txt')
 | 
			
		||||
  // NOTE: intermediate certificates should be bundled with
 | 
			
		||||
  // the site's certificate, which is issued by the server
 | 
			
		||||
  // when you connect. You only need to add them here if the
 | 
			
		||||
  // server is misconfigured and you can't change it
 | 
			
		||||
  //.addFile(__dirname + '/ssl/Rapid SSL CA.txt')
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
sslOptions = {
 | 
			
		||||
  key: fs.readFileSync('./ssl/privkey.pem')
 | 
			
		||||
, cert: fs.readFileSync('./ssl/fullchain.pem')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
app.use('/', function (req, res) {
 | 
			
		||||
  res.end('<html><body><h1>Hello World</h1></body></html>');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
server = https.createServer(sslOptions);
 | 
			
		||||
server.on('request', app);
 | 
			
		||||
server.listen(port, function(){
 | 
			
		||||
  console.log('Listening on https://' + server.address().address + ':' + server.address().port);
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
### Multiple HTTPS servers using SNI
 | 
			
		||||
 | 
			
		||||
I know this works - because I just bought two SSL certs from RapidSSL (through name.com),
 | 
			
		||||
a Digital Ocean VPS,
 | 
			
		||||
and played around for an hour until it did.
 | 
			
		||||
 | 
			
		||||
:-)
 | 
			
		||||
 | 
			
		||||
File hierarchy:
 | 
			
		||||
 | 
			
		||||
```
 | 
			
		||||
/etc/letsencrypt
 | 
			
		||||
└── live
 | 
			
		||||
    ├── aj.the.dj
 | 
			
		||||
    │   ├── cert.pem        // contains my server certificate
 | 
			
		||||
    │   ├── chain.pem       // contains RapidSSL intermediate
 | 
			
		||||
    │   ├── cert+chain.pem  // contains both
 | 
			
		||||
    │   └── privkey.pem     // my private key
 | 
			
		||||
    ├── ballprovo.com
 | 
			
		||||
    │   ├── cert.pem
 | 
			
		||||
    │   ├── chain.pem
 | 
			
		||||
    │   ├── cert+chain.pem
 | 
			
		||||
    │   └── privkey.pem
 | 
			
		||||
    ├── server.js
 | 
			
		||||
    └── ssl
 | 
			
		||||
        ├── Geotrust Cross Root CA.txt // the Root Authority
 | 
			
		||||
        └── Rapid SSL CA.txt           // the Intermediate Authority
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### `server.js`
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var https = require('https');
 | 
			
		||||
var http = require('http');
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
var crypto = require('crypto');
 | 
			
		||||
var express = require('express');
 | 
			
		||||
var vhost = require('vhost');
 | 
			
		||||
 | 
			
		||||
  // connect / express app
 | 
			
		||||
var app = express();
 | 
			
		||||
 | 
			
		||||
  // SSL Server
 | 
			
		||||
var secureContexts = {};
 | 
			
		||||
var secureOpts;
 | 
			
		||||
var secureServer;
 | 
			
		||||
var securePort = 4443;
 | 
			
		||||
 | 
			
		||||
  // force SSL upgrade server
 | 
			
		||||
var server;
 | 
			
		||||
var port = 4080;
 | 
			
		||||
 | 
			
		||||
  // the ssl domains I have
 | 
			
		||||
var domains = ['aj.the.dj', 'ballprovo.com'];
 | 
			
		||||
 | 
			
		||||
require('ssl-root-cas/latest')
 | 
			
		||||
  .inject()
 | 
			
		||||
  .addFile(__dirname + '/ssl/Geotrust Cross Root CA.txt')
 | 
			
		||||
  //.addFile(__dirname + '/ssl/Rapid SSL CA.txt')
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
function getAppContext(domain) {
 | 
			
		||||
  // Really you'd want to do this:
 | 
			
		||||
  // return require(__dirname + '/' + domain + '/app.js');
 | 
			
		||||
 | 
			
		||||
  // But for this demo we'll do this:
 | 
			
		||||
  return connect().use('/', function (req, res) {
 | 
			
		||||
    console.log('req.vhost', JSON.stringify(req.vhost));
 | 
			
		||||
    res.end('<html><body><h1>Welcome to ' + domain + '!</h1></body></html>');
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
domains.forEach(function (domain) {
 | 
			
		||||
  secureContexts[domain] = crypto.createCredentials({
 | 
			
		||||
    key:  fs.readFileSync(__dirname + '/' + domain + '/privkey.pem')
 | 
			
		||||
  , cert: fs.readFileSync(__dirname + '/' + domain + '/cert+chain.pem')
 | 
			
		||||
  }).context;
 | 
			
		||||
 | 
			
		||||
  app.use(vhost('*.' + domain, getAppContext(domain)));
 | 
			
		||||
  app.use(vhost(domain, getAppContext(domain)));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// fallback / default domain
 | 
			
		||||
app.use('/', function (req, res) {
 | 
			
		||||
  res.end('<html><body><h1>Hello World</h1></body></html>');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
//provide a SNICallback when you create the options for the https server
 | 
			
		||||
secureOpts = {
 | 
			
		||||
  //SNICallback is passed the domain name, see NodeJS docs on TLS
 | 
			
		||||
  SNICallback: function (domain) {
 | 
			
		||||
    console.log('SNI:', domain);
 | 
			
		||||
    return secureContexts[domain];
 | 
			
		||||
  }
 | 
			
		||||
  // fallback / default domain
 | 
			
		||||
  , key:  fs.readFileSync(__dirname + '/aj.the.dj/privkey.pem')
 | 
			
		||||
  , cert: fs.readFileSync(__dirname + '/aj.the.dj/cert+chain.pem')
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
secureServer = https.createServer(secureOpts, app).listen(securePort, function(){
 | 
			
		||||
  console.log("Listening on https://localhost:" + secureServer.address().port);
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
server = http.createServer(function (req, res) {
 | 
			
		||||
  res.setHeader(
 | 
			
		||||
    'Location'
 | 
			
		||||
  , 'https://' + req.headers.host.replace(/:\d+/, ':' + securePort)
 | 
			
		||||
  );
 | 
			
		||||
  res.statusCode = 302;
 | 
			
		||||
  res.end();
 | 
			
		||||
}).listen(port, function(){
 | 
			
		||||
  console.log("Listening on http://localhost:" + server.address().port);
 | 
			
		||||
});
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
Other SSL Resources
 | 
			
		||||
=========
 | 
			
		||||
 | 
			
		||||
Zero-Config clone 'n' run (tm) Repos:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
* [io.js / node.js HTTPS SSL Example](https://github.com/coolaj86/nodejs-ssl-example)
 | 
			
		||||
* [io.js / node.js HTTPS SSL Self-Signed Certificate Example](https://github.com/coolaj86/nodejs-self-signed-certificate-example)
 | 
			
		||||
* [io.js / node.js HTTPS SSL Trusted Peer Client Certificate Example](https://github.com/coolaj86/nodejs-ssl-trusted-peer-example)
 | 
			
		||||
* [SSL Root CAs](https://github.com/coolaj86/node-ssl-root-cas)
 | 
			
		||||
 | 
			
		||||
Articles
 | 
			
		||||
 | 
			
		||||
* [Creating an SSL Certificate for node.js](http://greengeckodesign.com/blog/2013/06/15/creating-an-ssl-certificate-for-node-dot-js/)
 | 
			
		||||
* [HTTPS Trusted Peer Example](http://www.hacksparrow.com/express-js-https-server-client-example.html/comment-page-1)
 | 
			
		||||
* [How to Create a CSR for HTTPS SSL (demo with name.com, node.js)](http://blog.coolaj86.com/articles/how-to-create-a-csr-for-https-tls-ssl-rsa-pems/)
 | 
			
		||||
* [coolaj86/Painless-Self-Signed-Certificates-in-node](https://github.com/coolaj86/node-ssl-root-cas/wiki/Painless-Self-Signed-Certificates-in-node.js)
 | 
			
		||||
 | 
			
		||||
@ -4,12 +4,19 @@
 | 
			
		||||
 | 
			
		||||
var fs = require('fs')
 | 
			
		||||
  , path = require('path')
 | 
			
		||||
  , request = require('@coolaj86/urequest')
 | 
			
		||||
  , request = require('request')
 | 
			
		||||
  , CERTDB_URL = 'https://mxr.mozilla.org/nss/source/lib/ckfw/builtins/certdata.txt?raw=1'
 | 
			
		||||
  , outputFile
 | 
			
		||||
  , outputPemsDir
 | 
			
		||||
  , OUTFILE = path.join(__dirname, './ssl-root-cas-latest.js')
 | 
			
		||||
  , HEADER
 | 
			
		||||
  ;
 | 
			
		||||
 | 
			
		||||
HEADER =
 | 
			
		||||
  "/**\n" +
 | 
			
		||||
  " * Mozilla's root CA store\n" +
 | 
			
		||||
  " *\n" +
 | 
			
		||||
  " * generated from " + CERTDB_URL + "\n" +
 | 
			
		||||
  " */\n\n";
 | 
			
		||||
 | 
			
		||||
function Certificate() {
 | 
			
		||||
  this.name = null;
 | 
			
		||||
  this.body = '';
 | 
			
		||||
@ -23,18 +30,15 @@ Certificate.prototype.quasiPEM = function quasiPEM() {
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
  bytes.shift();
 | 
			
		||||
  converted = Buffer.alloc(bytes.length);
 | 
			
		||||
  converted = new Buffer(bytes.length);
 | 
			
		||||
  while(bytes.length > 0) {
 | 
			
		||||
    converted.writeUInt8(parseInt(bytes.shift(), 8), offset++);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return {
 | 
			
		||||
    name: this.name
 | 
			
		||||
  , value: '  // ' + this.name + '\n'
 | 
			
		||||
      + '  "-----BEGIN CERTIFICATE-----\\n" +\n'
 | 
			
		||||
      + converted.toString('base64').replace(/(.{1,76})/g, '  "$1\\n" +\n')
 | 
			
		||||
      + '  "-----END CERTIFICATE-----\\n"'
 | 
			
		||||
  };
 | 
			
		||||
  return '  // ' + this.name + '\n' +
 | 
			
		||||
         '  "-----BEGIN CERTIFICATE-----\\n" +\n' +
 | 
			
		||||
         converted.toString('base64').replace(/(.{1,76})/g, '  "$1\\n" +\n') +
 | 
			
		||||
         '  "-----END CERTIFICATE-----\\n"';
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
function parseBody(current, lines) {
 | 
			
		||||
@ -66,58 +70,40 @@ function parseBody(current, lines) {
 | 
			
		||||
 | 
			
		||||
function parseCertData(lines) {
 | 
			
		||||
  var certs = []
 | 
			
		||||
    , line
 | 
			
		||||
    , current
 | 
			
		||||
    , skipped = 0
 | 
			
		||||
    , match
 | 
			
		||||
    , finished
 | 
			
		||||
    ;
 | 
			
		||||
 | 
			
		||||
  function parseLine(line) {
 | 
			
		||||
    //
 | 
			
		||||
    // Find & nuke whitespace and comments
 | 
			
		||||
    //
 | 
			
		||||
    if (line.match(/^#|^\s*$/)) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
  while (lines.length > 0) {
 | 
			
		||||
    line = lines.shift();
 | 
			
		||||
 | 
			
		||||
    // nuke whitespace and comments
 | 
			
		||||
    if (line.match(/^#|^\s*$/)) continue;
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Find CERT
 | 
			
		||||
    //
 | 
			
		||||
    if (line.match(/^CKA_CLASS CK_OBJECT_CLASS CKO_CERTIFICATE/)) {
 | 
			
		||||
      current = new Certificate();
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!current) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Find Name
 | 
			
		||||
    //
 | 
			
		||||
    if (current) {
 | 
			
		||||
      match = line.match(/^CKA_LABEL UTF8 \"(.*)\"/);
 | 
			
		||||
      if (match) {
 | 
			
		||||
      current.name = decodeURIComponent(match[1]);
 | 
			
		||||
      return;
 | 
			
		||||
        current.name = match[1];
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
    //
 | 
			
		||||
    // Find Body
 | 
			
		||||
    //
 | 
			
		||||
      if (line.match(/^CKA_VALUE MULTILINE_OCTAL/)) {
 | 
			
		||||
        finished = parseBody(current, lines);
 | 
			
		||||
        if (finished) {
 | 
			
		||||
          certs.push(finished);
 | 
			
		||||
      } else {
 | 
			
		||||
        skipped += 1;
 | 
			
		||||
        }
 | 
			
		||||
        else {
 | 
			
		||||
          skipped++;
 | 
			
		||||
        }
 | 
			
		||||
        current = null;
 | 
			
		||||
      return;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  while (lines.length > 0) {
 | 
			
		||||
    parseLine(lines.shift());
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  console.info("Skipped %s untrusted certificates.", skipped);
 | 
			
		||||
@ -126,114 +112,51 @@ function parseCertData(lines) {
 | 
			
		||||
  return certs;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function dumpCerts(certs, filename, pemsDir) {
 | 
			
		||||
  certs.forEach(function (cert) {
 | 
			
		||||
    var pem = cert.quasiPEM()
 | 
			
		||||
      , pemName = pem.name.toLowerCase().replace(/[\\\s\/\(\)\.]+/g, '-').replace(/-+/g, '-')
 | 
			
		||||
      , pemsFile = path.join(pemsDir, pemName + '.pem')
 | 
			
		||||
function dumpCerts(certs) {
 | 
			
		||||
  certs.forEach(function (cert, i) {
 | 
			
		||||
    var pathname = path.join(__dirname, 'pems', 'ca-' + i + '.pem')
 | 
			
		||||
      ;
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
    if (/[^\w\-]/.test(pemName)) {
 | 
			
		||||
      //pemName = pemName.replace(/\\/g, '-');
 | 
			
		||||
      //pemName = pemName.replace(/[^\w-]/g, '-');
 | 
			
		||||
      console.log(pemName);
 | 
			
		||||
    }
 | 
			
		||||
    */
 | 
			
		||||
    fs.writeFileSync(pemsFile, pem.value);
 | 
			
		||||
    fs.writeFileSync(pathname, cert.quasiPEM());
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
  console.info("Wrote " + certs.length + " certificates in '"
 | 
			
		||||
    + path.join(__dirname, 'pems/').replace(/'/g, "\\'") + "'.");
 | 
			
		||||
 | 
			
		||||
  fs.writeFileSync(
 | 
			
		||||
    filename
 | 
			
		||||
  , fs.readFileSync(path.join(__dirname, 'ssl-root-cas.tpl.js'), 'utf8')
 | 
			
		||||
      .replace(/\/\*TPL\*\//, certs.map(function (cert) { return cert.quasiPEM().value; }).join(',\n\n'))
 | 
			
		||||
  , 'utf8'
 | 
			
		||||
    OUTFILE
 | 
			
		||||
  , HEADER
 | 
			
		||||
      + 'var cas = module.exports = [\n'
 | 
			
		||||
      + certs.map(function (cert) { return cert.quasiPEM(); }).join(',\n\n')
 | 
			
		||||
      + '\n];\n'
 | 
			
		||||
      + "module.exports.rootCas = cas;\n"
 | 
			
		||||
      + "module.exports.inject = function () {\n"
 | 
			
		||||
      + "  var opts = require('https').globalAgent.options;\n"
 | 
			
		||||
      + "  if (!opts.ca || !opts.ca.__injected) { opts.ca = (opts.ca||[]).concat(cas); }\n"
 | 
			
		||||
      + "  opts.ca.__injected = true;\n"
 | 
			
		||||
      + "  return module.exports;\n"
 | 
			
		||||
      + "};\n"
 | 
			
		||||
      + "module.exports.addFile = function (filepath) {\n"
 | 
			
		||||
      + "  var opts = require('https').globalAgent.options;\n"
 | 
			
		||||
      + "  var root = filepath[0] === '/' ? '/' : '';\n"
 | 
			
		||||
      + "  opts.ca = opts.ca || [];\n"
 | 
			
		||||
      + "  opts.ca.push(require('fs').readFileSync(require('path').join.apply(null, (root + filepath).split(/\\//g))));\n"
 | 
			
		||||
      + "  return module.exports;\n"
 | 
			
		||||
      + "};\n"
 | 
			
		||||
  );
 | 
			
		||||
  console.info("Wrote '" + filename.replace(/'/g, "\\'") + "'.");
 | 
			
		||||
  console.info("Wrote '" + OUTFILE.replace(/'/g, "\\'") + "'.");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*global Promise*/
 | 
			
		||||
function run(filename) {
 | 
			
		||||
  var PromiseA;
 | 
			
		||||
  if ('undefined' !== typeof Promise) {
 | 
			
		||||
    PromiseA = Promise;
 | 
			
		||||
  } else {
 | 
			
		||||
    try {
 | 
			
		||||
      PromiseA = require('bluebird').Promise;
 | 
			
		||||
    } catch(e) {
 | 
			
		||||
      console.error("node " + process.version + " lacks Promise support. Please add bluebird to your project:");
 | 
			
		||||
      console.error("    npm install --save bluebird");
 | 
			
		||||
      process.exit(1);
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  return new PromiseA(function (resolve, reject) {
 | 
			
		||||
    if (!filename) {
 | 
			
		||||
      console.error("Error: No file specified");
 | 
			
		||||
      console.info("Usage: %s <outputfile>", process.argv[1]);
 | 
			
		||||
      console.info("   where <outputfile> is the name of the file to write to, relative to %s", process.argv[1]);
 | 
			
		||||
      console.info("Note that a 'pems/' directory will also be created at the same location as the <outputfile>, containing individual .pem files.");
 | 
			
		||||
      reject(3);
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // main (combined) output file location, relative to this script's location
 | 
			
		||||
    outputFile = path.resolve(__dirname, filename);
 | 
			
		||||
 | 
			
		||||
    // pems/ output directory, in the same directory as the outputFile
 | 
			
		||||
    outputPemsDir = path.resolve(outputFile, '../pems');
 | 
			
		||||
 | 
			
		||||
    if (!fs.existsSync(outputPemsDir)) {
 | 
			
		||||
      fs.mkdirSync(outputPemsDir);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    console.info("Loading latest certificates from " + CERTDB_URL);
 | 
			
		||||
    request({ url: CERTDB_URL }, function (error, response, body) {
 | 
			
		||||
request(CERTDB_URL, function (error, response, body) {
 | 
			
		||||
  if (error) {
 | 
			
		||||
        console.error(error);
 | 
			
		||||
    console.error(error.stacktrace);
 | 
			
		||||
        reject({ code: 1, error: error });
 | 
			
		||||
        return;
 | 
			
		||||
    process.exit(1);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  if (response.statusCode !== 200) {
 | 
			
		||||
    console.error("Fetching failed with status code %s", response.statusCode);
 | 
			
		||||
        reject({ code: 2, error: "Fetching failed with status code " + response.statusCode });
 | 
			
		||||
        return;
 | 
			
		||||
    process.exit(2);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
      if (response.headers['content-type'].indexOf('text/plain') !== 0) {
 | 
			
		||||
        console.error("Fetching failed with incorrect content type %s", response.headers['content-type']);
 | 
			
		||||
        reject({ code: 2, error: "Fetching failed with incorrect content type " + response.headers['content-type'] });
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      var lines = body.split("\n")
 | 
			
		||||
        , certs = parseCertData(lines)
 | 
			
		||||
        , pemsFile = path.join(outputPemsDir, 'mozilla-certdata.txt')
 | 
			
		||||
        ;
 | 
			
		||||
 | 
			
		||||
      fs.writeFileSync(pemsFile, body);
 | 
			
		||||
      dumpCerts(certs, outputFile, outputPemsDir);
 | 
			
		||||
 | 
			
		||||
      resolve();
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
module.exports.generate = run;
 | 
			
		||||
 | 
			
		||||
if (require.main === module) {
 | 
			
		||||
  run(process.argv[2])
 | 
			
		||||
    .then
 | 
			
		||||
      (function () {
 | 
			
		||||
        // something
 | 
			
		||||
      }
 | 
			
		||||
    , function (errcode) {
 | 
			
		||||
        process.exit(errcode);
 | 
			
		||||
      }
 | 
			
		||||
    );
 | 
			
		||||
}
 | 
			
		||||
  var lines = body.split("\n");
 | 
			
		||||
  dumpCerts(parseCertData(lines));
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								latest.js
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								latest.js
									
									
									
									
									
								
							@ -1,28 +0,0 @@
 | 
			
		||||
'use strict';
 | 
			
		||||
 | 
			
		||||
var fs = require('fs');
 | 
			
		||||
var path = require('path');
 | 
			
		||||
var generate = require('./ca-store-generator').generate;
 | 
			
		||||
var latestFile = path.join(__dirname, 'ssl-root-cas-latest.js');
 | 
			
		||||
 | 
			
		||||
if (!fs.existsSync(latestFile)) {
 | 
			
		||||
  console.log('Needs latest SSL Root Certificate Authority data', latestFile);
 | 
			
		||||
  module.exports = require('./ssl-root-cas');
 | 
			
		||||
  generate(latestFile).then(function () {
 | 
			
		||||
    console.info('\n');
 | 
			
		||||
    console.info('##########################################################################################');
 | 
			
		||||
    console.info('#                                                                                        #');
 | 
			
		||||
    console.info('#  Downloaded the latest Root Certificate Authorities. Restart your server to use them.  #');
 | 
			
		||||
    console.info('#                                                                                        #');
 | 
			
		||||
    console.info('##########################################################################################');
 | 
			
		||||
    console.info('\n');
 | 
			
		||||
  }, function (e) {
 | 
			
		||||
    console.warn('\n\n');
 | 
			
		||||
    console.warn("Couldn't download the latest Root CAs, but it's not a big deal.");
 | 
			
		||||
    console.warn('');
 | 
			
		||||
    console.warn('Use "require(\'ssl-root-cas\')" instead of "require(\'ssl-root-cas/latest\')"');
 | 
			
		||||
    console.warn('');
 | 
			
		||||
  });
 | 
			
		||||
} else {
 | 
			
		||||
  module.exports = require('./ssl-root-cas-latest');
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										13
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										13
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@ -1,13 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "ssl-root-cas",
 | 
			
		||||
  "version": "1.2.5",
 | 
			
		||||
  "lockfileVersion": 1,
 | 
			
		||||
  "requires": true,
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@coolaj86/urequest": {
 | 
			
		||||
      "version": "1.3.6",
 | 
			
		||||
      "resolved": "https://registry.npmjs.org/@coolaj86/urequest/-/urequest-1.3.6.tgz",
 | 
			
		||||
      "integrity": "sha512-9rBXLFSb5D19opGeXdD/WuiFJsA4Pk2r8VUGEAeUZUxB1a2zB47K85BKAx3Gy9i4nZwg22ejlJA+q9DVrpQlbA=="
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										23
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								package.json
									
									
									
									
									
								
							@ -1,21 +1,16 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "ssl-root-cas",
 | 
			
		||||
  "version": "1.3.1",
 | 
			
		||||
  "version": "1.1.1",
 | 
			
		||||
  "description": "The module you need to solve node's SSL woes when including a custom certificate.",
 | 
			
		||||
  "main": "ssl-root-cas.js",
 | 
			
		||||
  "main": "ssl-root-cas",
 | 
			
		||||
  "scripts": {
 | 
			
		||||
    "test": "node ca-store-generator.js ssl-root-cas-test.js",
 | 
			
		||||
    "prepublish": "node ca-store-generator.js ssl-root-cas.js"
 | 
			
		||||
    "test": "node ca-store-generator.js",
 | 
			
		||||
    "prepublish": "node ca-store-generator.js; mv ssl-root-cas-latest.js ssl-root-cas.js",
 | 
			
		||||
    "postinstall": "node ca-store-generator.js; mv ssl-root-cas-latest.js latest.js"
 | 
			
		||||
  },
 | 
			
		||||
  "files": [
 | 
			
		||||
    "ca-store-generator.js",
 | 
			
		||||
    "ssl-root-cas.tpl.js",
 | 
			
		||||
    "latest.js",
 | 
			
		||||
    "pems"
 | 
			
		||||
  ],
 | 
			
		||||
  "repository": {
 | 
			
		||||
    "type": "git",
 | 
			
		||||
    "url": "git://git.coolaj86.com/coolaj86/ssl-root-cas.js.git"
 | 
			
		||||
    "url": "git://github.com/coolaj86/node-ssl-root-cas.git"
 | 
			
		||||
  },
 | 
			
		||||
  "keywords": [
 | 
			
		||||
    "SSL",
 | 
			
		||||
@ -30,10 +25,10 @@
 | 
			
		||||
  ],
 | 
			
		||||
  "license": "Apache2",
 | 
			
		||||
  "bugs": {
 | 
			
		||||
    "url": "https://git.coolaj86.com/coolaj86/ssl-root-cas.js/issues"
 | 
			
		||||
    "url": "https://github.com/coolaj86/node-ssl-root-cas/issues"
 | 
			
		||||
  },
 | 
			
		||||
  "homepage": "https://git.coolaj86.com/coolaj86/ssl-root-cas.js",
 | 
			
		||||
  "homepage": "https://github.com/coolaj86/node-ssl-root-cas",
 | 
			
		||||
  "dependencies": {
 | 
			
		||||
    "@coolaj86/urequest": "^1.3.6"
 | 
			
		||||
    "request": "~2.34.0"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										0
									
								
								pems/.gitkeep
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								pems/.gitkeep
									
									
									
									
									
										Normal file
									
								
							@ -1,28 +0,0 @@
 | 
			
		||||
  // AC RAIZ FNMT-RCM
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT\n" +
 | 
			
		||||
  "AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw\n" +
 | 
			
		||||
  "MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD\n" +
 | 
			
		||||
  "TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\n" +
 | 
			
		||||
  "ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf\n" +
 | 
			
		||||
  "qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr\n" +
 | 
			
		||||
  "btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL\n" +
 | 
			
		||||
  "j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou\n" +
 | 
			
		||||
  "08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw\n" +
 | 
			
		||||
  "WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT\n" +
 | 
			
		||||
  "tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ\n" +
 | 
			
		||||
  "47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC\n" +
 | 
			
		||||
  "ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa\n" +
 | 
			
		||||
  "i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE\n" +
 | 
			
		||||
  "FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o\n" +
 | 
			
		||||
  "dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD\n" +
 | 
			
		||||
  "nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s\n" +
 | 
			
		||||
  "D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ\n" +
 | 
			
		||||
  "j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT\n" +
 | 
			
		||||
  "Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW\n" +
 | 
			
		||||
  "+YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7\n" +
 | 
			
		||||
  "Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d\n" +
 | 
			
		||||
  "8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm\n" +
 | 
			
		||||
  "5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG\n" +
 | 
			
		||||
  "rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
@ -1,18 +0,0 @@
 | 
			
		||||
  // Amazon Root CA 1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD\n" +
 | 
			
		||||
  "VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1\n" +
 | 
			
		||||
  "MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv\n" +
 | 
			
		||||
  "bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" +
 | 
			
		||||
  "ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH\n" +
 | 
			
		||||
  "FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ\n" +
 | 
			
		||||
  "gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t\n" +
 | 
			
		||||
  "dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce\n" +
 | 
			
		||||
  "VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB\n" +
 | 
			
		||||
  "/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3\n" +
 | 
			
		||||
  "DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM\n" +
 | 
			
		||||
  "CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy\n" +
 | 
			
		||||
  "8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa\n" +
 | 
			
		||||
  "2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2\n" +
 | 
			
		||||
  "xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
@ -1,27 +0,0 @@
 | 
			
		||||
  // Amazon Root CA 2
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD\n" +
 | 
			
		||||
  "VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1\n" +
 | 
			
		||||
  "MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv\n" +
 | 
			
		||||
  "bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\n" +
 | 
			
		||||
  "ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4\n" +
 | 
			
		||||
  "kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp\n" +
 | 
			
		||||
  "N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9\n" +
 | 
			
		||||
  "AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd\n" +
 | 
			
		||||
  "fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx\n" +
 | 
			
		||||
  "kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS\n" +
 | 
			
		||||
  "btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0\n" +
 | 
			
		||||
  "Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN\n" +
 | 
			
		||||
  "c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+\n" +
 | 
			
		||||
  "3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw\n" +
 | 
			
		||||
  "DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA\n" +
 | 
			
		||||
  "A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY\n" +
 | 
			
		||||
  "+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE\n" +
 | 
			
		||||
  "YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW\n" +
 | 
			
		||||
  "xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ\n" +
 | 
			
		||||
  "gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW\n" +
 | 
			
		||||
  "aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV\n" +
 | 
			
		||||
  "Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3\n" +
 | 
			
		||||
  "KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi\n" +
 | 
			
		||||
  "JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
@ -1,11 +0,0 @@
 | 
			
		||||
  // Amazon Root CA 3
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG\n" +
 | 
			
		||||
  "EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy\n" +
 | 
			
		||||
  "NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ\n" +
 | 
			
		||||
  "MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB\n" +
 | 
			
		||||
  "f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr\n" +
 | 
			
		||||
  "Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43\n" +
 | 
			
		||||
  "rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc\n" +
 | 
			
		||||
  "eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
@ -1,12 +0,0 @@
 | 
			
		||||
  // Amazon Root CA 4
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG\n" +
 | 
			
		||||
  "EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy\n" +
 | 
			
		||||
  "NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ\n" +
 | 
			
		||||
  "MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN\n" +
 | 
			
		||||
  "/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri\n" +
 | 
			
		||||
  "83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\n" +
 | 
			
		||||
  "HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA\n" +
 | 
			
		||||
  "MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1\n" +
 | 
			
		||||
  "AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										14
									
								
								pems/ca-0.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								pems/ca-0.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
  // GTE CyberTrust Global Root
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYDVQQKEw9HVEUg\n" +
 | 
			
		||||
  "Q29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNvbHV0aW9ucywgSW5jLjEjMCEG\n" +
 | 
			
		||||
  "A1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEz\n" +
 | 
			
		||||
  "MjM1OTAwWjB1MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQL\n" +
 | 
			
		||||
  "Ex5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0\n" +
 | 
			
		||||
  "IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4u\n" +
 | 
			
		||||
  "sJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcql\n" +
 | 
			
		||||
  "HHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8FLztimQID\n" +
 | 
			
		||||
  "AQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMW\n" +
 | 
			
		||||
  "M4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OF\n" +
 | 
			
		||||
  "NMQkpw0PlZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										17
									
								
								pems/ca-1.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								pems/ca-1.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
  // Thawte Server CA
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT\n" +
 | 
			
		||||
  "DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs\n" +
 | 
			
		||||
  "dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UE\n" +
 | 
			
		||||
  "AxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5j\n" +
 | 
			
		||||
  "b20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNV\n" +
 | 
			
		||||
  "BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29u\n" +
 | 
			
		||||
  "c3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcG\n" +
 | 
			
		||||
  "A1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0\n" +
 | 
			
		||||
  "ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl\n" +
 | 
			
		||||
  "/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg7\n" +
 | 
			
		||||
  "1CcEJRCXL+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzAR\n" +
 | 
			
		||||
  "MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWDTSEwjsrZqG9J\n" +
 | 
			
		||||
  "GubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6eQNuozDJ0uW8NxuOzRAvZim+aKZuZ\n" +
 | 
			
		||||
  "GCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										26
									
								
								pems/ca-101.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								pems/ca-101.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
  // T\xc3\x9c\x42\xC4\xB0TAK UEKAE K\xC3\xB6k Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1 - S\xC3\xBCr\xC3\xBCm 3
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFFzCCA/+gAwIBAgIBETANBgkqhkiG9w0BAQUFADCCASsxCzAJBgNVBAYTAlRSMRgwFgYDVQQH\n" +
 | 
			
		||||
  "DA9HZWJ6ZSAtIEtvY2FlbGkxRzBFBgNVBAoMPlTDvHJraXllIEJpbGltc2VsIHZlIFRla25vbG9q\n" +
 | 
			
		||||
  "aWsgQXJhxZ90xLFybWEgS3VydW11IC0gVMOcQsSwVEFLMUgwRgYDVQQLDD9VbHVzYWwgRWxla3Ry\n" +
 | 
			
		||||
  "b25payB2ZSBLcmlwdG9sb2ppIEFyYcWfdMSxcm1hIEVuc3RpdMO8c8O8IC0gVUVLQUUxIzAhBgNV\n" +
 | 
			
		||||
  "BAsMGkthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppMUowSAYDVQQDDEFUw5xCxLBUQUsgVUVLQUUg\n" +
 | 
			
		||||
  "S8O2ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSAtIFPDvHLDvG0gMzAeFw0wNzA4\n" +
 | 
			
		||||
  "MjQxMTM3MDdaFw0xNzA4MjExMTM3MDdaMIIBKzELMAkGA1UEBhMCVFIxGDAWBgNVBAcMD0dlYnpl\n" +
 | 
			
		||||
  "IC0gS29jYWVsaTFHMEUGA1UECgw+VMO8cmtpeWUgQmlsaW1zZWwgdmUgVGVrbm9sb2ppayBBcmHF\n" +
 | 
			
		||||
  "n3TEsXJtYSBLdXJ1bXUgLSBUw5xCxLBUQUsxSDBGBgNVBAsMP1VsdXNhbCBFbGVrdHJvbmlrIHZl\n" +
 | 
			
		||||
  "IEtyaXB0b2xvamkgQXJhxZ90xLFybWEgRW5zdGl0w7xzw7wgLSBVRUtBRTEjMCEGA1UECwwaS2Ft\n" +
 | 
			
		||||
  "dSBTZXJ0aWZpa2FzeW9uIE1lcmtlemkxSjBIBgNVBAMMQVTDnELEsFRBSyBVRUtBRSBLw7ZrIFNl\n" +
 | 
			
		||||
  "cnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIC0gU8O8csO8bSAzMIIBIjANBgkqhkiG9w0B\n" +
 | 
			
		||||
  "AQEFAAOCAQ8AMIIBCgKCAQEAim1L/xCIOsP2fpTo6iBkcK4hgb46ezzb8R1Sf1n68yJMlaCQvEhO\n" +
 | 
			
		||||
  "Eav7t7WNeoMojCZG2E6VQIdhn8WebYGHV2yKO7Rm6sxA/OOqbLLLAdsyv9Lrhc+hDVXDWzhXcLh1\n" +
 | 
			
		||||
  "xnnRFDDtG1hba+818qEhTsXOfJlfbLm4IpNQp81McGq+agV/E5wrHur+R84EpW+sky58K5+eeROR\n" +
 | 
			
		||||
  "6Oqeyjh1jmKwlZMq5d/pXpduIF9fhHpEORlAHLpVK/swsoHvhOPc7Jg4OQOFCKlUAwUp8MmPi+oL\n" +
 | 
			
		||||
  "hmUZEdPpCSPeaJMDyTYcIW7OjGbxmTDY17PDHfiBLqi9ggtm/oLL4eAagsNAgQIDAQABo0IwQDAd\n" +
 | 
			
		||||
  "BgNVHQ4EFgQUvYiHyY/2pAoLquvF/pEjnatKijIwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF\n" +
 | 
			
		||||
  "MAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAB18+kmPNOm3JpIWmgV050vQbTlswyb2zrgxvMTfvCr4\n" +
 | 
			
		||||
  "N5EY3ATIZJkrGG2AA1nJrvhY0D7twyOfaTyGOBye79oneNGEN3GKPEs5z35FBtYt2IpNeBLWrcLT\n" +
 | 
			
		||||
  "y9LQQfMmNkqblWwM7uXRQydmwYj3erMgbOqwaSvHIOgMA8RBBZniP+Rr+KCGgceExh/VS4ESshYh\n" +
 | 
			
		||||
  "LBOhgLJeDEoTniDYYkCrkOpkSi+sDQESeUWoL4cZaMjihccwsnX5OD+ywJO0a+IDRM5noN+J1q2M\n" +
 | 
			
		||||
  "dqMTw5RhK2vZbMEHCiIHhWyFJEapvj+LeISCfiQMnf2BN+MlqO02TpUsyZyQ2uypQjyttgI=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										18
									
								
								pems/ca-102.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								pems/ca-102.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
  // Buypass Class 2 CA 1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDUzCCAjugAwIBAgIBATANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU\n" +
 | 
			
		||||
  "QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMiBDQSAxMB4XDTA2\n" +
 | 
			
		||||
  "MTAxMzEwMjUwOVoXDTE2MTAxMzEwMjUwOVowSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh\n" +
 | 
			
		||||
  "c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDIgQ0EgMTCCASIwDQYJKoZI\n" +
 | 
			
		||||
  "hvcNAQEBBQADggEPADCCAQoCggEBAIs8B0XY9t/mx8q6jUPFR42wWsE425KEHK8T1A9vNkYgxC7M\n" +
 | 
			
		||||
  "cXA0ojTTNy7Y3Tp3L8DrKehc0rWpkTSHIln+zNvnma+WwajHQN2lFYxuyHyXA8vmIPLXl18xoS83\n" +
 | 
			
		||||
  "0r7uvqmtqEyeIWZDO6i88wmjONVZJMHCR3axiFyCO7srpgTXjAePzdVBHfCuuCkslFJgNJQ72uA4\n" +
 | 
			
		||||
  "0Z0zPhX0kzLFANq1KWYOOngPIVJfAuWSeyXTkh4vFZ2B5J2O6O+JzhRMVB0cgRJNcKi+EAUXfh/R\n" +
 | 
			
		||||
  "uFdV7c27UsKwHnjCTTZoy1YmwVLBvXb3WNVyfh9EdrsAiR0WnVE1703CVu9r4Iw7DekCAwEAAaNC\n" +
 | 
			
		||||
  "MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUP42aWYv8e3uco684sDntkHGA1sgwDgYDVR0P\n" +
 | 
			
		||||
  "AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQAVGn4TirnoB6NLJzKyQJHyIdFkhb5jatLPgcIV\n" +
 | 
			
		||||
  "1Xp+DCmsNx4cfHZSldq1fyOhKXdlyTKdqC5Wq2B2zha0jX94wNWZUYN/Xtm+DKhQ7SLHrQVMdvvt\n" +
 | 
			
		||||
  "7h5HZPb3J31cKA9FxVxiXqaakZG3Uxcu3K1gnZZkOb1naLKuBctN518fV4bVIJwo+28TOPX2EZL2\n" +
 | 
			
		||||
  "fZleHwzoq0QkKXJAPTZSr4xYkHPB7GEseaHsh7U/2k3ZIQAw3pDaDtMaSKk+hQsUi4y8QZ5q9w5w\n" +
 | 
			
		||||
  "wDX3OaJdZtB7WZ+oRxKaJyOkLY4ng5IgodcVf/EuGO70SH8vf/GhGLWhC5SgYiAynB321O+/TIho\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										18
									
								
								pems/ca-103.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								pems/ca-103.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
  // Buypass Class 3 CA 1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDUzCCAjugAwIBAgIBAjANBgkqhkiG9w0BAQUFADBLMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU\n" +
 | 
			
		||||
  "QnV5cGFzcyBBUy05ODMxNjMzMjcxHTAbBgNVBAMMFEJ1eXBhc3MgQ2xhc3MgMyBDQSAxMB4XDTA1\n" +
 | 
			
		||||
  "MDUwOTE0MTMwM1oXDTE1MDUwOTE0MTMwM1owSzELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBh\n" +
 | 
			
		||||
  "c3MgQVMtOTgzMTYzMzI3MR0wGwYDVQQDDBRCdXlwYXNzIENsYXNzIDMgQ0EgMTCCASIwDQYJKoZI\n" +
 | 
			
		||||
  "hvcNAQEBBQADggEPADCCAQoCggEBAKSO13TZKWTeXx+HgJHqTjnmGcZEC4DVC69TB4sSveZn8AKx\n" +
 | 
			
		||||
  "ifZgisRbsELRwCGoy+Gb72RRtqfPFfV0gGgEkKBYouZ0plNTVUhjP5JW3SROjvi6K//zNIqeKNc0\n" +
 | 
			
		||||
  "n6wv1g/xpC+9UrJJhW05NfBEMJNGJPO251P7vGGvqaMU+8IXF4Rs4HyI+MkcVyzwPX6UvCWThOia\n" +
 | 
			
		||||
  "AJpFBUJXgPROztmuOfbIUxAMZTpHe2DC1vqRycZxbL2RhzyRhkmr8w+gbCZ2Xhysm3HljbybIR6c\n" +
 | 
			
		||||
  "1jh+JIAVMYKWsUnTYjdbiAwKYjT+p0h+mbEwi5A3lRyoH6UsjfRVyNvdWQrCrXig9IsCAwEAAaNC\n" +
 | 
			
		||||
  "MEAwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUOBTmyPCppAP0Tj4io1vy1uCtQHQwDgYDVR0P\n" +
 | 
			
		||||
  "AQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQABZ6OMySU9E2NdFm/soT4JXJEVKirZgCFPBdy7\n" +
 | 
			
		||||
  "pYmrEzMqnji3jG8CcmPHc3ceCQa6Oyh7pEfJYWsICCD8igWKH7y6xsL+z27sEzNxZy5p+qksP2bA\n" +
 | 
			
		||||
  "EllNC1QCkoS72xLvg3BweMhT+t/Gxv/ciC8HwEmdMldg0/L2mSlf56oBzKwzqBwKu5HEA6BvtjT5\n" +
 | 
			
		||||
  "htOzdlSY9EqBs1OdTUDs5XcTRa9bqh/YL0yCe/4qxFi7T/ye/QNlGioOw6UgFpRreaaiErS7GqQj\n" +
 | 
			
		||||
  "el/wroQk5PMr+4okoyeYZdowdXb8GZHo2+ubPzK/QJcHJrrM85SFSnonk8+QQtS4Wxam58tAA915\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										30
									
								
								pems/ca-104.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								pems/ca-104.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
  // EBG Elektronik Sertifika Hizmet Sa\xC4\x9Flay\xc4\xb1\x63\xc4\xb1s\xc4\xb1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIF5zCCA8+gAwIBAgIITK9zQhyOdAIwDQYJKoZIhvcNAQEFBQAwgYAxODA2BgNVBAMML0VCRyBF\n" +
 | 
			
		||||
  "bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMTcwNQYDVQQKDC5FQkcg\n" +
 | 
			
		||||
  "QmlsacWfaW0gVGVrbm9sb2ppbGVyaSB2ZSBIaXptZXRsZXJpIEEuxZ4uMQswCQYDVQQGEwJUUjAe\n" +
 | 
			
		||||
  "Fw0wNjA4MTcwMDIxMDlaFw0xNjA4MTQwMDMxMDlaMIGAMTgwNgYDVQQDDC9FQkcgRWxla3Ryb25p\n" +
 | 
			
		||||
  "ayBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTE3MDUGA1UECgwuRUJHIEJpbGnFn2lt\n" +
 | 
			
		||||
  "IFRla25vbG9qaWxlcmkgdmUgSGl6bWV0bGVyaSBBLsWeLjELMAkGA1UEBhMCVFIwggIiMA0GCSqG\n" +
 | 
			
		||||
  "SIb3DQEBAQUAA4ICDwAwggIKAoICAQDuoIRh0DpqZhAy2DE4f6en5f2h4fuXd7hxlugTlkaDT7by\n" +
 | 
			
		||||
  "X3JWbhNgpQGR4lvFzVcfd2NR/y8927k/qqk153nQ9dAktiHq6yOU/im/+4mRDGSaBUorzAzu8T2b\n" +
 | 
			
		||||
  "gmmkTPiab+ci2hC6X5L8GCcKqKpE+i4stPtGmggDg3KriORqcsnlZR9uKg+ds+g75AxuetpX/dfr\n" +
 | 
			
		||||
  "eYteIAbTdgtsApWjluTLdlHRKJ2hGvxEok3MenaoDT2/F08iiFD9rrbskFBKW5+VQarKD7JK/oCZ\n" +
 | 
			
		||||
  "TqNGFav4c0JqwmZ2sQomFd2TkuzbqV9UIlKRcF0T6kjsbgNs2d1s/OsNA/+mgxKb8amTD8UmTDGy\n" +
 | 
			
		||||
  "Y5lhcucqZJnSuOl14nypqZoaqsNW2xCaPINStnuWt6yHd6i58mcLlEOzrz5z+kI2sSXFCjEmN1Zn\n" +
 | 
			
		||||
  "uqMLfdb3ic1nobc6HmZP9qBVFCVMLDMNpkGMvQQxahByCp0OLna9XvNRiYuoP1Vzv9s6xiQFlpJI\n" +
 | 
			
		||||
  "qkuNKgPlV5EQ9GooFW5Hd4RcUXSfGenmHmMWOeMRFeNYGkS9y8RsZteEBt8w9DeiQyJ50hBs37vm\n" +
 | 
			
		||||
  "ExH8nYQKE3vwO9D8owrXieqWfo1IhR5kX9tUoqzVegJ5a9KK8GfaZXINFHDk6Y54jzJ0fFfy1tb0\n" +
 | 
			
		||||
  "Nokb+Clsi7n2l9GkLqq+CxnCRelwXQIDAJ3Zo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB\n" +
 | 
			
		||||
  "/wQEAwIBBjAdBgNVHQ4EFgQU587GT/wWZ5b6SqMHwQSny2re2kcwHwYDVR0jBBgwFoAU587GT/wW\n" +
 | 
			
		||||
  "Z5b6SqMHwQSny2re2kcwDQYJKoZIhvcNAQEFBQADggIBAJuYml2+8ygjdsZs93/mQJ7ANtyVDR2t\n" +
 | 
			
		||||
  "FcU22NU57/IeIl6zgrRdu0waypIN30ckHrMk2pGI6YNw3ZPX6bqz3xZaPt7gyPvT/Wwp+BVGoGgm\n" +
 | 
			
		||||
  "zJNSroIBk5DKd8pNSe/iWtkqvTDOTLKBtjDOWU/aWR1qeqRFsIImgYZ29fUQALjuswnoT4cCB64k\n" +
 | 
			
		||||
  "XPBfrAowzIpAoHMEwfuJJPaaHFy3PApnNgUIMbOv2AFoKuB4j3TeuFGkjGwgPaL7s9QJ/XvCgKqT\n" +
 | 
			
		||||
  "bCmYIai7FvOpEl90tYeY8pUm3zTvilORiF0alKM/fCL414i6poyWqD1SNGKfAB5UVUJnxk1Gj7sU\n" +
 | 
			
		||||
  "RT0KlhaOEKGXmdXTMIXM3rRyt7yKPBgpaP3ccQfuJDlq+u2lrDgv+R4QDgZxGhBM/nV+/x5XOULK\n" +
 | 
			
		||||
  "1+EVoVZVWRvRo68R2E7DpSvvkL/A7IITW43WciyTTo9qKd+FPNMN4KIYEsxVL0e3p5sC/kH2iExt\n" +
 | 
			
		||||
  "2qkBR4NkJ2IQgtYSe14DHzSpyZH+r11thie3I6p1GMog57AP14kOpmciY/SDQSsGS7tY1dHXt7kQ\n" +
 | 
			
		||||
  "Y9iJSrSq3RZj9W6+YKH47ejWkE8axsWgKdOnIaj1Wjz3x0miIZpKlVIglnKaZsv30oZDfCK+lvm9\n" +
 | 
			
		||||
  "AahH3eU7QPl1K5srRmSGjR70j/sHd9DqSaIcjVIUpgqT\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										19
									
								
								pems/ca-106.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								pems/ca-106.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,19 @@
 | 
			
		||||
  // CNNIC ROOT
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDVTCCAj2gAwIBAgIESTMAATANBgkqhkiG9w0BAQUFADAyMQswCQYDVQQGEwJDTjEOMAwGA1UE\n" +
 | 
			
		||||
  "ChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1QwHhcNMDcwNDE2MDcwOTE0WhcNMjcwNDE2MDcw\n" +
 | 
			
		||||
  "OTE0WjAyMQswCQYDVQQGEwJDTjEOMAwGA1UEChMFQ05OSUMxEzARBgNVBAMTCkNOTklDIFJPT1Qw\n" +
 | 
			
		||||
  "ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDTNfc/c3et6FtzF8LRb+1VvG7q6KR5smzD\n" +
 | 
			
		||||
  "o+/hn7E7SIX1mlwhIhAsxYLO2uOabjfhhyzcuQxauohV3/2q2x8x6gHx3zkBwRP9SFIhxFXf2tiz\n" +
 | 
			
		||||
  "VHa6dLG3fdfA6PZZxU3Iva0fFNrfWEQlMhkqx35+jq44sDB7R3IJMfAw28Mbdim7aXZOV/kbZKKT\n" +
 | 
			
		||||
  "VrdvmW7bCgScEeOAH8tjlBAKqeFkgjH5jCftppkA9nCTGPihNIaj3XrCGHn2emU1z5DrvTOTn1Or\n" +
 | 
			
		||||
  "czvmmzQgLx3vqR1jGqCA2wMv+SYahtKNu6m+UjqHZ0gNv7Sg2Ca+I19zN38m5pIEo3/PIKe38zrK\n" +
 | 
			
		||||
  "y5nLAgMBAAGjczBxMBEGCWCGSAGG+EIBAQQEAwIABzAfBgNVHSMEGDAWgBRl8jGtKvf33VKWCscC\n" +
 | 
			
		||||
  "wQ7vptU7ETAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIB/jAdBgNVHQ4EFgQUZfIxrSr3991S\n" +
 | 
			
		||||
  "lgrHAsEO76bVOxEwDQYJKoZIhvcNAQEFBQADggEBAEs17szkrr/Dbq2flTtLP1se31cpolnKOOK5\n" +
 | 
			
		||||
  "Gv+e5m4y3R6u6jW39ZORTtpC4cMXYFDy0VwmuYK36m3knITnA3kXr5g9lNvHugDnuL8BV8F3RTIM\n" +
 | 
			
		||||
  "O/G0HAiw/VGgod2aHRM2mm23xzy54cXZF/qD1T0VoDy7HgviyJA/qIYM/PmLXoXLT1tLYhFHxUV8\n" +
 | 
			
		||||
  "BS9BsZ4QaRuZluBVeftOhpm4lNqGOGqTo+fLbuXf6iFViZx9fX+Y9QCJ7uOEwFyWtcVG6kbghVW2\n" +
 | 
			
		||||
  "G8kS1sHNzYDzAgE8yGnLRUhj2JTQ7IUOO04RZfSCjKY9ri4ilAnIXOo8gV0WKgOXFlUJ24pBgp5m\n" +
 | 
			
		||||
  "mxE=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										20
									
								
								pems/ca-107.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								pems/ca-107.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
  // ApplicationCA - Japanese Government
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDoDCCAoigAwIBAgIBMTANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQGEwJKUDEcMBoGA1UEChMT\n" +
 | 
			
		||||
  "SmFwYW5lc2UgR292ZXJubWVudDEWMBQGA1UECxMNQXBwbGljYXRpb25DQTAeFw0wNzEyMTIxNTAw\n" +
 | 
			
		||||
  "MDBaFw0xNzEyMTIxNTAwMDBaMEMxCzAJBgNVBAYTAkpQMRwwGgYDVQQKExNKYXBhbmVzZSBHb3Zl\n" +
 | 
			
		||||
  "cm5tZW50MRYwFAYDVQQLEw1BcHBsaWNhdGlvbkNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB\n" +
 | 
			
		||||
  "CgKCAQEAp23gdE6Hj6UG3mii24aZS2QNcfAKBZuOquHMLtJqO8F6tJdhjYq+xpqcBrSGUeQ3DnR4\n" +
 | 
			
		||||
  "fl+Kf5Sk10cI/VBaVuRorChzoHvpfxiSQE8tnfWuREhzNgaeZCw7NCPbXCbkcXmP1G55IrmTwcrN\n" +
 | 
			
		||||
  "wVbtiGrXoDkhBFcsovW8R0FPXjQilbUfKW1eSvNNcr5BViCH/OlQR9cwFO5cjFW6WY2H/CPek9AE\n" +
 | 
			
		||||
  "jP3vbb3QesmlOmpyM8ZKDQUXKi17safY1vC+9D/qDihtQWEjdnjDuGWk81quzMKq2edY3rZ+nYVu\n" +
 | 
			
		||||
  "nyoKb58DKTCXKB28t89UKU5RMfkntigm/qJj5kEW8DOYRwIDAQABo4GeMIGbMB0GA1UdDgQWBBRU\n" +
 | 
			
		||||
  "WssmP3HMlEYNllPqa0jQk/5CdTAOBgNVHQ8BAf8EBAMCAQYwWQYDVR0RBFIwUKROMEwxCzAJBgNV\n" +
 | 
			
		||||
  "BAYTAkpQMRgwFgYDVQQKDA/ml6XmnKzlm73mlL/lupwxIzAhBgNVBAsMGuOCouODl+ODquOCseOD\n" +
 | 
			
		||||
  "vOOCt+ODp+ODs0NBMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADlqRHZ3ODrs\n" +
 | 
			
		||||
  "o2dGD/mLBqj7apAxzn7s2tGJfHrrLgy9mTLnsCTWw//1sogJhyzjVOGjprIIC8CFqMjSnHH2HZ9g\n" +
 | 
			
		||||
  "/DgzE+Ge3Atf2hZQKXsvcJEPmbo0NI2VdMV+eKlmXb3KIXdCEKxmJj3ekav9FfBv7WxfEPjzFvYD\n" +
 | 
			
		||||
  "io+nEhEMy/0/ecGc/WLuo89UDNErXxc+4z6/wCs+CZv+iKZ+tJIX/COUgb1up8WMwusRRdv4QcmW\n" +
 | 
			
		||||
  "dupwX3kSa+SjB1oF7ydJzyGfikwJcGapJsErEU4z0g781mzSDjJkaP+tBXhfAx2o45CsJOAPQKdL\n" +
 | 
			
		||||
  "rosot4LKGAfmt1t06SAZf7IbiVQ=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										22
									
								
								pems/ca-116.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								pems/ca-116.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
  // CA Disig
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIEDzCCAvegAwIBAgIBATANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMK\n" +
 | 
			
		||||
  "QnJhdGlzbGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwHhcNMDYw\n" +
 | 
			
		||||
  "MzIyMDEzOTM0WhcNMTYwMzIyMDEzOTM0WjBKMQswCQYDVQQGEwJTSzETMBEGA1UEBxMKQnJhdGlz\n" +
 | 
			
		||||
  "bGF2YTETMBEGA1UEChMKRGlzaWcgYS5zLjERMA8GA1UEAxMIQ0EgRGlzaWcwggEiMA0GCSqGSIb3\n" +
 | 
			
		||||
  "DQEBAQUAA4IBDwAwggEKAoIBAQCS9jHBfYj9mQGp2HvycXXxMcbzdWb6UShGhJd4NLxs/LxFWYgm\n" +
 | 
			
		||||
  "GErENx+hSkS943EE9UQX4j/8SFhvXJ56CbpRNyIjZkMhsDxkovhqFQ4/61HhVKndBpnXmjxUizkD\n" +
 | 
			
		||||
  "Pw/Fzsbrg3ICqB9x8y34dQjbYkzo+s7552oftms1grrijxaSfQUMbEYDXcDtab86wYqg6I7ZuUUo\n" +
 | 
			
		||||
  "hwjstMoVvoLdtUSLLa2GDGhibYVW8qwUYzrG0ZmsNHhWS8+2rT+MitcE5eN4TPWGqvWP+j1scaMt\n" +
 | 
			
		||||
  "ymfraHtuM6kMgiioTGohQBUgDCZbg8KpFhXAJIJdKxatymP2dACw30PEEGBWZ2NFAgMBAAGjgf8w\n" +
 | 
			
		||||
  "gfwwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUjbJJaJ1yCCW5wCf1UJNWSEZx+Y8wDgYDVR0P\n" +
 | 
			
		||||
  "AQH/BAQDAgEGMDYGA1UdEQQvMC2BE2Nhb3BlcmF0b3JAZGlzaWcuc2uGFmh0dHA6Ly93d3cuZGlz\n" +
 | 
			
		||||
  "aWcuc2svY2EwZgYDVR0fBF8wXTAtoCugKYYnaHR0cDovL3d3dy5kaXNpZy5zay9jYS9jcmwvY2Ff\n" +
 | 
			
		||||
  "ZGlzaWcuY3JsMCygKqAohiZodHRwOi8vY2EuZGlzaWcuc2svY2EvY3JsL2NhX2Rpc2lnLmNybDAa\n" +
 | 
			
		||||
  "BgNVHSAEEzARMA8GDSuBHpGT5goAAAABAQEwDQYJKoZIhvcNAQEFBQADggEBAF00dGFMrzvY/59t\n" +
 | 
			
		||||
  "WDYcPQuBDRIrRhCA/ec8J9B6yKm2fnQwM6M6int0wHl5QpNt/7EpFIKrIYwvF/k/Ji/1WcbvgAa3\n" +
 | 
			
		||||
  "mkkp7M5+cTxqEEHA9tOasnxakZzArFvITV734VP/Q3f8nktnbNfzg9Gg4H8l37iYC5oyOGwwoPP/\n" +
 | 
			
		||||
  "CBUz91BKez6jPiCp3C9WgArtQVCwyfTssuMmRAAOb54GvCKWU3BlxFAKRmukLyeBEicTXxChds6K\n" +
 | 
			
		||||
  "ezfqwzlhA5WYOudsiCUI/HloDYd9Yvi0X/vF2Ey9WLw/Q1vUHgFNPGO+I++MzVpQuGhU+QqZMxEA\n" +
 | 
			
		||||
  "4Z7CRneC9VkGjCFMhwnN5ag=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										26
									
								
								pems/ca-117.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								pems/ca-117.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,26 @@
 | 
			
		||||
  // Juur-SK
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIE5jCCA86gAwIBAgIEO45L/DANBgkqhkiG9w0BAQUFADBdMRgwFgYJKoZIhvcNAQkBFglwa2lA\n" +
 | 
			
		||||
  "c2suZWUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKExlBUyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMRAw\n" +
 | 
			
		||||
  "DgYDVQQDEwdKdXVyLVNLMB4XDTAxMDgzMDE0MjMwMVoXDTE2MDgyNjE0MjMwMVowXTEYMBYGCSqG\n" +
 | 
			
		||||
  "SIb3DQEJARYJcGtpQHNrLmVlMQswCQYDVQQGEwJFRTEiMCAGA1UEChMZQVMgU2VydGlmaXRzZWVy\n" +
 | 
			
		||||
  "aW1pc2tlc2t1czEQMA4GA1UEAxMHSnV1ci1TSzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" +
 | 
			
		||||
  "ggEBAIFxNj4zB9bjMI0TfncyRsvPGbJgMUaXhvSYRqTCZUXP00B841oiqBB4M8yIsdOBSvZiF3tf\n" +
 | 
			
		||||
  "TQou0M+LI+5PAk676w7KvRhj6IAcjeEcjT3g/1tf6mTll+g/mX8MCgkzABpTpyHhOEvWgxutr2TC\n" +
 | 
			
		||||
  "+Rx6jGZITWYfGAriPrsfB2WThbkasLnE+w0R9vXW+RvHLCu3GFH+4Hv2qEivbDtPL+/40UceJlfw\n" +
 | 
			
		||||
  "UR0zlv/vWT3aTdEVNMfqPxZIe5EcgEMPPbgFPtGzlc3Yyg/CQ2fbt5PgIoIuvvVoKIO5wTtpeyDa\n" +
 | 
			
		||||
  "Tpxt4brNj3pssAki14sL2xzVWiZbDcDq5WDQn/413z8CAwEAAaOCAawwggGoMA8GA1UdEwEB/wQF\n" +
 | 
			
		||||
  "MAMBAf8wggEWBgNVHSAEggENMIIBCTCCAQUGCisGAQQBzh8BAQEwgfYwgdAGCCsGAQUFBwICMIHD\n" +
 | 
			
		||||
  "HoHAAFMAZQBlACAAcwBlAHIAdABpAGYAaQBrAGEAYQB0ACAAbwBuACAAdgDkAGwAagBhAHMAdABh\n" +
 | 
			
		||||
  "AHQAdQBkACAAQQBTAC0AaQBzACAAUwBlAHIAdABpAGYAaQB0AHMAZQBlAHIAaQBtAGkAcwBrAGUA\n" +
 | 
			
		||||
  "cwBrAHUAcwAgAGEAbABhAG0ALQBTAEsAIABzAGUAcgB0AGkAZgBpAGsAYQBhAHQAaQBkAGUAIABr\n" +
 | 
			
		||||
  "AGkAbgBuAGkAdABhAG0AaQBzAGUAawBzMCEGCCsGAQUFBwIBFhVodHRwOi8vd3d3LnNrLmVlL2Nw\n" +
 | 
			
		||||
  "cy8wKwYDVR0fBCQwIjAgoB6gHIYaaHR0cDovL3d3dy5zay5lZS9qdXVyL2NybC8wHQYDVR0OBBYE\n" +
 | 
			
		||||
  "FASqekej5ImvGs8KQKcYP2/v6X2+MB8GA1UdIwQYMBaAFASqekej5ImvGs8KQKcYP2/v6X2+MA4G\n" +
 | 
			
		||||
  "A1UdDwEB/wQEAwIB5jANBgkqhkiG9w0BAQUFAAOCAQEAe8EYlFOiCfP+JmeaUOTDBS8rNXiRTHyo\n" +
 | 
			
		||||
  "ERF5TElZrMj3hWVcRrs7EKACr81Ptcw2Kuxd/u+gkcm2k298gFTsxwhwDY77guwqYHhpNjbRxZyL\n" +
 | 
			
		||||
  "abVAyJRld/JXIWY7zoVAtjNjGr95HvxcHdMdkxuLDF2FvZkwMhgJkVLpfKG6/2SSmuz+Ne6ML678\n" +
 | 
			
		||||
  "IIbsSt4beDI3poHSna9aEhbKmVv8b20OxaAehsmR0FyYgl9jDIpaq9iVpszLita/ZEuOyoqysOkh\n" +
 | 
			
		||||
  "Mp6qqIWYNIE5ITuoOlIyPfZrN4YGWhWY3PARZv40ILcD9EEQfTmEeZZyY7aWAuVrua0ZTbvGRNs2\n" +
 | 
			
		||||
  "yyqcjg==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										17
									
								
								pems/ca-12.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								pems/ca-12.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
  // ValiCert Class 1 VA
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp\n" +
 | 
			
		||||
  "b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs\n" +
 | 
			
		||||
  "YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh\n" +
 | 
			
		||||
  "bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIy\n" +
 | 
			
		||||
  "MjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0\n" +
 | 
			
		||||
  "d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEg\n" +
 | 
			
		||||
  "UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0\n" +
 | 
			
		||||
  "LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA\n" +
 | 
			
		||||
  "A4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIi\n" +
 | 
			
		||||
  "GQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCm\n" +
 | 
			
		||||
  "DuJWBQ8YTfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwG\n" +
 | 
			
		||||
  "lN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8sogTLDAHkY7FkX\n" +
 | 
			
		||||
  "icnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPwnXS3qT6gpf+2SQMT2iLM7XGCK5nP\n" +
 | 
			
		||||
  "Orf1LXLI\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										29
									
								
								pems/ca-120.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								pems/ca-120.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
  // ACEDICOM Root
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFtTCCA52gAwIBAgIIYY3HhjsBggUwDQYJKoZIhvcNAQEFBQAwRDEWMBQGA1UEAwwNQUNFRElD\n" +
 | 
			
		||||
  "T00gUm9vdDEMMAoGA1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMB4XDTA4\n" +
 | 
			
		||||
  "MDQxODE2MjQyMloXDTI4MDQxMzE2MjQyMlowRDEWMBQGA1UEAwwNQUNFRElDT00gUm9vdDEMMAoG\n" +
 | 
			
		||||
  "A1UECwwDUEtJMQ8wDQYDVQQKDAZFRElDT00xCzAJBgNVBAYTAkVTMIICIjANBgkqhkiG9w0BAQEF\n" +
 | 
			
		||||
  "AAOCAg8AMIICCgKCAgEA/5KV4WgGdrQsyFhIyv2AVClVYyT/kGWbEHV7w2rbYgIB8hiGtXxaOLHk\n" +
 | 
			
		||||
  "WLn709gtn70yN78sFW2+tfQh0hOR2QetAQXW8713zl9CgQr5auODAKgrLlUTY4HKRxx7XBZXehuD\n" +
 | 
			
		||||
  "YAQ6PmXDzQHe3qTWDLqO3tkE7hdWIpuPY/1NFgu3e3eM+SW10W2ZEi5PGrjm6gSSrj0RuVFCPYew\n" +
 | 
			
		||||
  "MYWveVqc/udOXpJPQ/yrOq2lEiZmueIM15jO1FillUAKt0SdE3QrwqXrIhWYENiLxQSfHY9g5QYb\n" +
 | 
			
		||||
  "m8+5eaA9oiM/Qj9r+hwDezCNzmzAv+YbX79nuIQZ1RXve8uQNjFiybwCq0Zfm/4aaJQ0PZCOrfbk\n" +
 | 
			
		||||
  "HQl/Sog4P75n/TSW9R28MHTLOO7VbKvU/PQAtwBbhTIWdjPp2KOZnQUAqhbm84F9b32qhm2tFXTT\n" +
 | 
			
		||||
  "xKJxqvQUfecyuB+81fFOvW8XAjnXDpVCOscAPukmYxHqC9FK/xidstd7LzrZlvvoHpKuE1XI2Sf2\n" +
 | 
			
		||||
  "3EgbsCTBheN3nZqk8wwRHQ3ItBTutYJXCb8gWH8vIiPYcMt5bMlL8qkqyPyHK9caUPgn6C9D4zq9\n" +
 | 
			
		||||
  "2Fdx/c6mUlv53U3t5fZvie27k5x2IXXwkkwp9y+cAS7+UEaeZAwUswdbxcJzbPEHXEUkFDWug/Fq\n" +
 | 
			
		||||
  "TYl6+rPYLWbwNof1K1MCAwEAAaOBqjCBpzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKaz\n" +
 | 
			
		||||
  "4SsrSbbXc6GqlPUB53NlTKxQMA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUprPhKytJttdzoaqU\n" +
 | 
			
		||||
  "9QHnc2VMrFAwRAYDVR0gBD0wOzA5BgRVHSAAMDEwLwYIKwYBBQUHAgEWI2h0dHA6Ly9hY2VkaWNv\n" +
 | 
			
		||||
  "bS5lZGljb21ncm91cC5jb20vZG9jMA0GCSqGSIb3DQEBBQUAA4ICAQDOLAtSUWImfQwng4/F9tqg\n" +
 | 
			
		||||
  "aHtPkl7qpHMyEVNEskTLnewPeUKzEKbHDZ3Ltvo/Onzqv4hTGzz3gvoFNTPhNahXwOf9jU8/kzJP\n" +
 | 
			
		||||
  "eGYDdwdY6ZXIfj7QeQCM8htRM5u8lOk6e25SLTKeI6RF+7YuE7CLGLHdztUdp0J/Vb77W7tH1Pwk\n" +
 | 
			
		||||
  "zQSulgUV1qzOMPPKC8W64iLgpq0i5ALudBF/TP94HTXa5gI06xgSYXcGCRZj6hitoocf8seACQl1\n" +
 | 
			
		||||
  "ThCojz2GuHURwCRiipZ7SkXp7FnFvmuD5uHorLUwHv4FB4D54SMNUI8FmP8sX+g7tq3PgbUhh8oI\n" +
 | 
			
		||||
  "KiMnMCArz+2UW6yyetLHKKGKC5tNSixthT8Jcjxn4tncB7rrZXtaAWPWkFtPF2Y9fwsZo5NjEFIq\n" +
 | 
			
		||||
  "nxQWWOLcpfShFosOkYuByptZ+thrkQdlVV9SH686+5DdaaVbnG0OLLb6zqylfDJKZ0DcMDQj3dcE\n" +
 | 
			
		||||
  "I2bw/FWAp/tmGYI1Z2JwOV5vx+qQQEQIHriy1tvuWacNGHk0vFQYXlPKNFHtRQrmjseCNj6nOGOp\n" +
 | 
			
		||||
  "MCwXEGCSn1WHElkQwg9naRHMTh5+Spqtr0CodaxWkHS4oJyleW/c6RrIaQXpuvoDs3zk4E7Czp3o\n" +
 | 
			
		||||
  "tkYNbn5XOmeUwssfnHdKZ05phkOTOPu220+DkdRgfks+KzgHVZhepA==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										14
									
								
								pems/ca-121.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								pems/ca-121.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
  // Verisign Class 1 Public Primary Certification Authority
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIICPDCCAaUCED9pHoGc8JpK83P/uUii5N0wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx\n" +
 | 
			
		||||
  "FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5\n" +
 | 
			
		||||
  "IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow\n" +
 | 
			
		||||
  "XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAx\n" +
 | 
			
		||||
  "IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA\n" +
 | 
			
		||||
  "A4GNADCBiQKBgQDlGb9to1ZhLZlIcfZn3rmN67eehoAKkQ76OCWvRoiC5XOooJskXQ0fzGVuDLDQ\n" +
 | 
			
		||||
  "VoQYh5oGmxChc9+0WDlrbsH2FdWoqD+qEgaNMax/sDTXjzRniAnNFBHiTkVWaR94AoDa3EeRKbs2\n" +
 | 
			
		||||
  "yWNcxeDXLYd7obcysHswuiovMaruo2fa2wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFgVKTk8d6Pa\n" +
 | 
			
		||||
  "XCUDfGD67gmZPCcQcMgMCeazh88K4hiWNWLMv5sneYlfycQJ9M61Hd8qveXbhpxoJeUwfLaJFf5n\n" +
 | 
			
		||||
  "0a3hUKw8fGJLj7qE1xIVGx/KXQ/BUpQqEZnae88MNhPVNdwQGVnqlMEAv3WP2fr9dgTbYruQagPZ\n" +
 | 
			
		||||
  "RjXZ+Hxb\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										14
									
								
								pems/ca-122.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								pems/ca-122.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
  // Verisign Class 3 Public Primary Certification Authority
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIICPDCCAaUCEDyRMcsf9tAbDpq40ES/Er4wDQYJKoZIhvcNAQEFBQAwXzELMAkGA1UEBhMCVVMx\n" +
 | 
			
		||||
  "FzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5\n" +
 | 
			
		||||
  "IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMjIzNTk1OVow\n" +
 | 
			
		||||
  "XzELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAz\n" +
 | 
			
		||||
  "IFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA\n" +
 | 
			
		||||
  "A4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94\n" +
 | 
			
		||||
  "f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Ol\n" +
 | 
			
		||||
  "hec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBABByUqkFFBky\n" +
 | 
			
		||||
  "CEHwxWsKzH4PIRnN5GfcX6kb5sroc50i2JhucwNhkcV8sEVAbkSdjbCxlnRhLQ2pRdKkkirWmnWX\n" +
 | 
			
		||||
  "bj9T/UWZYB2oK0z5XqcJ2HUw19JlYD1n1khVdWk/kfVIC0dpImmClr7JyDiGSnoscxlIaU5rfGW/\n" +
 | 
			
		||||
  "D/xwzoiQ\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										20
									
								
								pems/ca-124.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								pems/ca-124.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
  // E-Guven Kok Elektronik Sertifika Hizmet Saglayicisi
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDtjCCAp6gAwIBAgIQRJmNPMADJ72cdpW56tustTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG\n" +
 | 
			
		||||
  "EwJUUjEoMCYGA1UEChMfRWxla3Ryb25payBCaWxnaSBHdXZlbmxpZ2kgQS5TLjE8MDoGA1UEAxMz\n" +
 | 
			
		||||
  "ZS1HdXZlbiBLb2sgRWxla3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhZ2xheWljaXNpMB4XDTA3\n" +
 | 
			
		||||
  "MDEwNDExMzI0OFoXDTE3MDEwNDExMzI0OFowdTELMAkGA1UEBhMCVFIxKDAmBgNVBAoTH0VsZWt0\n" +
 | 
			
		||||
  "cm9uaWsgQmlsZ2kgR3V2ZW5saWdpIEEuUy4xPDA6BgNVBAMTM2UtR3V2ZW4gS29rIEVsZWt0cm9u\n" +
 | 
			
		||||
  "aWsgU2VydGlmaWthIEhpem1ldCBTYWdsYXlpY2lzaTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC\n" +
 | 
			
		||||
  "AQoCggEBAMMSIJ6wXgBljU5Gu4Bc6SwGl9XzcslwuedLZYDBS75+PNdUMZTe1RK6UxYC6lhj71vY\n" +
 | 
			
		||||
  "8+0qGqpxSKPcEC1fX+tcS5yWCEIlKBHMilpiAVDV6wlTL/jDj/6z/P2douNffb7tC+Bg62nsM+3Y\n" +
 | 
			
		||||
  "jfsSSYMAyYuXjDtzKjKzEve5TfL0TW3H5tYmNwjy2f1rXKPlSFxYvEK+A1qBuhw1DADT9SN+cTAI\n" +
 | 
			
		||||
  "JjjcJRFHLfO6IxClv7wC90Nex/6wN1CZew+TzuZDLMN+DfIcQ2Zgy2ExR4ejT669VmxMvLz4Bcpk\n" +
 | 
			
		||||
  "9Ok0oSy1c+HCPujIyTQlCFzz7abHlJ+tiEMl1+E5YP6sOVkCAwEAAaNCMEAwDgYDVR0PAQH/BAQD\n" +
 | 
			
		||||
  "AgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFJ/uRLOU1fqRTy7ZVZoEVtstxNulMA0GCSqG\n" +
 | 
			
		||||
  "SIb3DQEBBQUAA4IBAQB/X7lTW2M9dTLn+sR0GstG30ZpHFLPqk/CaOv/gKlR6D1id4k9CnU58W5d\n" +
 | 
			
		||||
  "F4dvaAXBlGzZXd/aslnLpRCKysw5zZ/rTt5S/wzw9JKp8mxTq5vSR6AfdPebmvEvFZ96ZDAYBzwq\n" +
 | 
			
		||||
  "D2fK/A+JYZ1lpTzlvBNbCNvj/+27BrtqBrF6T2XGgv0enIu1De5Iu7i9qgi0+6N8y5/NkHZchpZ4\n" +
 | 
			
		||||
  "Vwpm+Vganf2XKWDeEaaQHBkc7gGWIjQ0LpH5t8Qn0Xvmv/uARFoW5evg1Ao4vOSR49XrXMGs3xtq\n" +
 | 
			
		||||
  "fJ7lddK2l4fbzIcrQzqECK+rPNv3PGYxhrCdU3nt+CPeQuMtgvEP5fqX\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										21
									
								
								pems/ca-126.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pems/ca-126.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
  // TC TrustCenter Universal CA III
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIID4TCCAsmgAwIBAgIOYyUAAQACFI0zFQLkbPQwDQYJKoZIhvcNAQEFBQAwezELMAkGA1UEBhMC\n" +
 | 
			
		||||
  "REUxHDAaBgNVBAoTE1RDIFRydXN0Q2VudGVyIEdtYkgxJDAiBgNVBAsTG1RDIFRydXN0Q2VudGVy\n" +
 | 
			
		||||
  "IFVuaXZlcnNhbCBDQTEoMCYGA1UEAxMfVEMgVHJ1c3RDZW50ZXIgVW5pdmVyc2FsIENBIElJSTAe\n" +
 | 
			
		||||
  "Fw0wOTA5MDkwODE1MjdaFw0yOTEyMzEyMzU5NTlaMHsxCzAJBgNVBAYTAkRFMRwwGgYDVQQKExNU\n" +
 | 
			
		||||
  "QyBUcnVzdENlbnRlciBHbWJIMSQwIgYDVQQLExtUQyBUcnVzdENlbnRlciBVbml2ZXJzYWwgQ0Ex\n" +
 | 
			
		||||
  "KDAmBgNVBAMTH1RDIFRydXN0Q2VudGVyIFVuaXZlcnNhbCBDQSBJSUkwggEiMA0GCSqGSIb3DQEB\n" +
 | 
			
		||||
  "AQUAA4IBDwAwggEKAoIBAQDC2pxisLlxErALyBpXsq6DFJmzNEubkKLF5+cvAqBNLaT6hdqbJYUt\n" +
 | 
			
		||||
  "QCggbergvbFIgyIpRJ9Og+41URNzdNW88jBmlFPAQDYvDIRlzg9uwliT6CwLOunBjvvya8o84pxO\n" +
 | 
			
		||||
  "juT5fdMnnxvVZ3iHLX8LR7PH6MlIfK8vzArZQe+f/prhsq75U7Xl6UafYOPfjdN/+5Z+s7Vy+Eut\n" +
 | 
			
		||||
  "CHnNaYlAJ/Uqwa1D7KRTyGG299J5KmcYdkhtWyUB0SbFt1dpIxVbYYqt8Bst2a9c8SaQaanVDED1\n" +
 | 
			
		||||
  "M4BDj5yjdipFtK+/fz6HP3bFzSreIMUWWMv5G/UPyw0RUmS40nZid4PxWJ//AgMBAAGjYzBhMB8G\n" +
 | 
			
		||||
  "A1UdIwQYMBaAFFbn4VslQ4Dg9ozhcbyO5YAvxEjiMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/\n" +
 | 
			
		||||
  "BAQDAgEGMB0GA1UdDgQWBBRW5+FbJUOA4PaM4XG8juWAL8RI4jANBgkqhkiG9w0BAQUFAAOCAQEA\n" +
 | 
			
		||||
  "g8ev6n9NCjw5sWi+e22JLumzCecYV42FmhfzdkJQEw/HkG8zrcVJYCtsSVgZ1OK+t7+rSbyUyKu+\n" +
 | 
			
		||||
  "KGwWaODIl0YgoGhnYIg5IFHYaAERzqf2EQf27OysGh+yZm5WZ2B6dF7AbZc2rrUNXWZzwCUyRdhK\n" +
 | 
			
		||||
  "BgePxLcHsU0GDeGl6/R1yrqc0L2z0zIkTO5+4nYES0lT2PLpVDP85XEfPRRclkvxOvIAu2y0+pZV\n" +
 | 
			
		||||
  "CIgJwcyRGSmwIC3/yzikQOEXvnlhgP8HA4ZMTnsGnxGGjYnuJ8Tb4rwZjgvDwxPHLQNjO9Po5KIq\n" +
 | 
			
		||||
  "woIIlBZU8O8fJ5AluA0OKBtHd0e9HKgl8ZS0Zg==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										17
									
								
								pems/ca-13.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								pems/ca-13.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
  // ValiCert Class 2 VA
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp\n" +
 | 
			
		||||
  "b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs\n" +
 | 
			
		||||
  "YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh\n" +
 | 
			
		||||
  "bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw\n" +
 | 
			
		||||
  "MTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0\n" +
 | 
			
		||||
  "d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIg\n" +
 | 
			
		||||
  "UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0\n" +
 | 
			
		||||
  "LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA\n" +
 | 
			
		||||
  "A4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVC\n" +
 | 
			
		||||
  "CSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7Rf\n" +
 | 
			
		||||
  "ZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZ\n" +
 | 
			
		||||
  "SWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbV\n" +
 | 
			
		||||
  "UjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8\n" +
 | 
			
		||||
  "W9ViH0Pd\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										29
									
								
								pems/ca-139.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								pems/ca-139.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
  // Certinomis - Autorité Racine
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFnDCCA4SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJGUjETMBEGA1UEChMK\n" +
 | 
			
		||||
  "Q2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxJjAkBgNVBAMMHUNlcnRpbm9taXMg\n" +
 | 
			
		||||
  "LSBBdXRvcml0w6kgUmFjaW5lMB4XDTA4MDkxNzA4Mjg1OVoXDTI4MDkxNzA4Mjg1OVowYzELMAkG\n" +
 | 
			
		||||
  "A1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMxFzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMSYw\n" +
 | 
			
		||||
  "JAYDVQQDDB1DZXJ0aW5vbWlzIC0gQXV0b3JpdMOpIFJhY2luZTCCAiIwDQYJKoZIhvcNAQEBBQAD\n" +
 | 
			
		||||
  "ggIPADCCAgoCggIBAJ2Fn4bT46/HsmtuM+Cet0I0VZ35gb5j2CN2DpdUzZlMGvE5x4jYF1AMnmHa\n" +
 | 
			
		||||
  "wE5V3udauHpOd4cN5bjr+p5eex7Ezyh0x5P1FMYiKAT5kcOrJ3NqDi5N8y4oH3DfVS9O7cdxbwly\n" +
 | 
			
		||||
  "Lu3VMpfQ8Vh30WC8Tl7bmoT2R2FFK/ZQpn9qcSdIhDWerP5pqZ56XjUl+rSnSTV3lqc2W+HN3yNw\n" +
 | 
			
		||||
  "2F1MpQiD8aYkOBOo7C+ooWfHpi2GR+6K/OybDnT0K0kCe5B1jPyZOQE51kqJ5Z52qz6WKDgmi92N\n" +
 | 
			
		||||
  "jMD2AR5vpTESOH2VwnHu7XSu5DaiQ3XV8QCb4uTXzEIDS3h65X27uK4uIJPT5GHfceF2Z5c/tt9q\n" +
 | 
			
		||||
  "c1pkIuVC28+BA5PY9OMQ4HL2AHCs8MF6DwV/zzRpRbWT5BnbUhYjBYkOjUjkJW+zeL9i9Qf6lSTC\n" +
 | 
			
		||||
  "lrLooyPCXQP8w9PlfMl1I9f09bze5N/NgL+RiH2nE7Q5uiy6vdFrzPOlKO1Enn1So2+WLhl+HPNb\n" +
 | 
			
		||||
  "xxaOu2B9d2ZHVIIAEWBsMsGoOBvrbpgT1u449fCfDu/+MYHB0iSVL1N6aaLwD4ZFjliCK0wi1F6g\n" +
 | 
			
		||||
  "530mJ0jfJUaNSih8hp75mxpZuWW/Bd22Ql095gBIgl4g9xGC3srYn+Y3RyYe63j3YcNBZFgCQfna\n" +
 | 
			
		||||
  "4NH4+ej9Uji29YnfAgMBAAGjWzBZMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G\n" +
 | 
			
		||||
  "A1UdDgQWBBQNjLZh2kS40RR9w759XkjwzspqsDAXBgNVHSAEEDAOMAwGCiqBegFWAgIAAQEwDQYJ\n" +
 | 
			
		||||
  "KoZIhvcNAQEFBQADggIBACQ+YAZ+He86PtvqrxyaLAEL9MW12Ukx9F1BjYkMTv9sov3/4gbIOZ/x\n" +
 | 
			
		||||
  "WqndIlgVqIrTseYyCYIDbNc/CMf4uboAbbnW/FIyXaR/pDGUu7ZMOH8oMDX/nyNTt7buFHAAQCva\n" +
 | 
			
		||||
  "R6s0fl6nVjBhK4tDrP22iCj1a7Y+YEq6QpA0Z43q619FVDsXrIvkxmUP7tCMXWY5zjKn2BCXwH40\n" +
 | 
			
		||||
  "nJ+U8/aGH88bc62UeYdocMMzpXDn2NU4lG9jeeu/Cg4I58UvD0KgKxRA/yHgBcUn4YQRE7rWhh1B\n" +
 | 
			
		||||
  "CxMjidPJC+iKunqjo3M3NYB9Ergzd0A4wPpeMNLytqOx1qKVl4GbUu1pTP+A5FPbVFsDbVRfsbjv\n" +
 | 
			
		||||
  "JL1vnxHDx2TCDyhihWZeGnuyt++uNckZM6i4J9szVb9o4XVIRFb7zdNIu0eJOqxp9YDG5ERQL1TE\n" +
 | 
			
		||||
  "qkPFMTFYvZbF6nVsmnWxTfj3l/+WFvKXTej28xH5On2KOG4Ey+HTRRWqpdEdnV1j6CTmNhTih60b\n" +
 | 
			
		||||
  "WfVEm/vXd3wfAXBioSAaosUaKPQhA+4u2cGA6rnZgtZbdsLLO7XSAPCjDuGtbkD326C00EauFddE\n" +
 | 
			
		||||
  "wk01+dIL8hf2rGbVJLJP0RyZwG71fet0BLj5TXcJ17TPBzAJ8bgAVtkXFhYKK4bfjwEZGuW7gmP/\n" +
 | 
			
		||||
  "vgt2Fl43N+bYdJeimUV5\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										17
									
								
								pems/ca-14.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								pems/ca-14.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,17 @@
 | 
			
		||||
  // RSA Root Certificate 1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRp\n" +
 | 
			
		||||
  "b24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs\n" +
 | 
			
		||||
  "YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZh\n" +
 | 
			
		||||
  "bGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAw\n" +
 | 
			
		||||
  "MjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0\n" +
 | 
			
		||||
  "d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMg\n" +
 | 
			
		||||
  "UG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0\n" +
 | 
			
		||||
  "LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUA\n" +
 | 
			
		||||
  "A4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td\n" +
 | 
			
		||||
  "3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89H\n" +
 | 
			
		||||
  "BFx1cQqYJJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs\n" +
 | 
			
		||||
  "3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0WuPIqpsHEzXcjF\n" +
 | 
			
		||||
  "V9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/APhmcGcwTTYJBtYze4D1gCCAPRX5r\n" +
 | 
			
		||||
  "on+jjBXu\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										33
									
								
								pems/ca-140.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								pems/ca-140.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
			
		||||
  // Root CA Generalitat Valenciana
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIGizCCBXOgAwIBAgIEO0XlaDANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJFUzEfMB0GA1UE\n" +
 | 
			
		||||
  "ChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290\n" +
 | 
			
		||||
  "IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwHhcNMDEwNzA2MTYyMjQ3WhcNMjEwNzAxMTUyMjQ3\n" +
 | 
			
		||||
  "WjBoMQswCQYDVQQGEwJFUzEfMB0GA1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UE\n" +
 | 
			
		||||
  "CxMGUEtJR1ZBMScwJQYDVQQDEx5Sb290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmEwggEiMA0G\n" +
 | 
			
		||||
  "CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDGKqtXETcvIorKA3Qdyu0togu8M1JAJke+WmmmO3I2\n" +
 | 
			
		||||
  "F0zo37i7L3bhQEZ0ZQKQUgi0/6iMweDHiVYQOTPvaLRfX9ptI6GJXiKjSgbwJ/BXufjpTjJ3Cj9B\n" +
 | 
			
		||||
  "ZPPrZe52/lSqfR0grvPXdMIKX/UIKFIIzFVd0g/bmoGlu6GzwZTNVOAydTGRGmKy3nXiz0+J2ZGQ\n" +
 | 
			
		||||
  "D0EbtFpKd71ng+CT516nDOeB0/RSrFOyA8dEJvt55cs0YFAQexvba9dHq198aMpunUEDEO5rmXte\n" +
 | 
			
		||||
  "JajCq+TA81yc477OMUxkHl6AovWDfgzWyoxVjr7gvkkHD6MkQXpYHYTqWBLI4bft75PelAgxAgMB\n" +
 | 
			
		||||
  "AAGjggM7MIIDNzAyBggrBgEFBQcBAQQmMCQwIgYIKwYBBQUHMAGGFmh0dHA6Ly9vY3NwLnBraS5n\n" +
 | 
			
		||||
  "dmEuZXMwEgYDVR0TAQH/BAgwBgEB/wIBAjCCAjQGA1UdIASCAiswggInMIICIwYKKwYBBAG/VQIB\n" +
 | 
			
		||||
  "ADCCAhMwggHoBggrBgEFBQcCAjCCAdoeggHWAEEAdQB0AG8AcgBpAGQAYQBkACAAZABlACAAQwBl\n" +
 | 
			
		||||
  "AHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAFIAYQDtAHoAIABkAGUAIABsAGEAIABHAGUAbgBlAHIA\n" +
 | 
			
		||||
  "YQBsAGkAdABhAHQAIABWAGEAbABlAG4AYwBpAGEAbgBhAC4ADQAKAEwAYQAgAEQAZQBjAGwAYQBy\n" +
 | 
			
		||||
  "AGEAYwBpAPMAbgAgAGQAZQAgAFAAcgDhAGMAdABpAGMAYQBzACAAZABlACAAQwBlAHIAdABpAGYA\n" +
 | 
			
		||||
  "aQBjAGEAYwBpAPMAbgAgAHEAdQBlACAAcgBpAGcAZQAgAGUAbAAgAGYAdQBuAGMAaQBvAG4AYQBt\n" +
 | 
			
		||||
  "AGkAZQBuAHQAbwAgAGQAZQAgAGwAYQAgAHAAcgBlAHMAZQBuAHQAZQAgAEEAdQB0AG8AcgBpAGQA\n" +
 | 
			
		||||
  "YQBkACAAZABlACAAQwBlAHIAdABpAGYAaQBjAGEAYwBpAPMAbgAgAHMAZQAgAGUAbgBjAHUAZQBu\n" +
 | 
			
		||||
  "AHQAcgBhACAAZQBuACAAbABhACAAZABpAHIAZQBjAGMAaQDzAG4AIAB3AGUAYgAgAGgAdAB0AHAA\n" +
 | 
			
		||||
  "OgAvAC8AdwB3AHcALgBwAGsAaQAuAGcAdgBhAC4AZQBzAC8AYwBwAHMwJQYIKwYBBQUHAgEWGWh0\n" +
 | 
			
		||||
  "dHA6Ly93d3cucGtpLmd2YS5lcy9jcHMwHQYDVR0OBBYEFHs100DSHHgZZu90ECjcPk+yeAT8MIGV\n" +
 | 
			
		||||
  "BgNVHSMEgY0wgYqAFHs100DSHHgZZu90ECjcPk+yeAT8oWykajBoMQswCQYDVQQGEwJFUzEfMB0G\n" +
 | 
			
		||||
  "A1UEChMWR2VuZXJhbGl0YXQgVmFsZW5jaWFuYTEPMA0GA1UECxMGUEtJR1ZBMScwJQYDVQQDEx5S\n" +
 | 
			
		||||
  "b290IENBIEdlbmVyYWxpdGF0IFZhbGVuY2lhbmGCBDtF5WgwDQYJKoZIhvcNAQEFBQADggEBACRh\n" +
 | 
			
		||||
  "TvW1yEICKrNcda3FbcrnlD+laJWIwVTAEGmiEi8YPyVQqHxK6sYJ2fR1xkDar1CdPaUWu20xxsdz\n" +
 | 
			
		||||
  "Ckj+IHLtb8zog2EWRpABlUt9jppSCS/2bxzkoXHPjCpaF3ODR00PNvsETUlR4hTJZGH71BTg9J63\n" +
 | 
			
		||||
  "NI8KJr2XXPR5OkowGcytT6CYirQxlyric21+eLj4iIlPsSKRZEv1UN4D2+XFducTZnV+ZfsBn5OH\n" +
 | 
			
		||||
  "iJ35Rld8TWCvmHMTI6QgkYH60GFmuH3Rr9ZvHmw96RH9qfmCIoaZM3Fa6hlXPZHNqcCjbgcTpsnt\n" +
 | 
			
		||||
  "+GijnsNacgmHKNHEc8RzGF9QdRYxn7fofMM=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										21
									
								
								pems/ca-141.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pems/ca-141.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
  // A-Trust-nQual-03
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDzzCCAregAwIBAgIDAWweMA0GCSqGSIb3DQEBBQUAMIGNMQswCQYDVQQGEwJBVDFIMEYGA1UE\n" +
 | 
			
		||||
  "Cgw/QS1UcnVzdCBHZXMuIGYuIFNpY2hlcmhlaXRzc3lzdGVtZSBpbSBlbGVrdHIuIERhdGVudmVy\n" +
 | 
			
		||||
  "a2VociBHbWJIMRkwFwYDVQQLDBBBLVRydXN0LW5RdWFsLTAzMRkwFwYDVQQDDBBBLVRydXN0LW5R\n" +
 | 
			
		||||
  "dWFsLTAzMB4XDTA1MDgxNzIyMDAwMFoXDTE1MDgxNzIyMDAwMFowgY0xCzAJBgNVBAYTAkFUMUgw\n" +
 | 
			
		||||
  "RgYDVQQKDD9BLVRydXN0IEdlcy4gZi4gU2ljaGVyaGVpdHNzeXN0ZW1lIGltIGVsZWt0ci4gRGF0\n" +
 | 
			
		||||
  "ZW52ZXJrZWhyIEdtYkgxGTAXBgNVBAsMEEEtVHJ1c3QtblF1YWwtMDMxGTAXBgNVBAMMEEEtVHJ1\n" +
 | 
			
		||||
  "c3QtblF1YWwtMDMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtPWFuA/OQO8BBC4SA\n" +
 | 
			
		||||
  "zewqo51ru27CQoT3URThoKgtUaNR8t4j8DRE/5TrzAUjlUC5B3ilJfYKvUWG6Nm9wASOhURh73+n\n" +
 | 
			
		||||
  "yfrBJcyFLGM/BWBzSQXgYHiVEEvc+RFZznF/QJuKqiTfC0Li21a8StKlDJu3Qz7dg9MmEALP6iPE\n" +
 | 
			
		||||
  "SU7l0+m0iKsMrmKS1GWH2WrX9IWf5DMiJaXlyDO6w8dB3F/GaswADm0yqLaHNgBid5seHzTLkDx4\n" +
 | 
			
		||||
  "iHQF63n1k3Flyp3HaxgtPVxO59X4PzF9j4fsCiIvI+n+u33J4PTs63zEsMMtYrWacdaxaujs2e3V\n" +
 | 
			
		||||
  "cuy+VwHOBVWf3tFgiBCzAgMBAAGjNjA0MA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0OBAoECERqlWdV\n" +
 | 
			
		||||
  "eRFPMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAVdRU0VlIXLOThaq/Yy/kgM40\n" +
 | 
			
		||||
  "ozRiPvbY7meIMQQDbwvUB/tOdQ/TLtPAF8fGKOwGDREkDg6lXb+MshOWcdzUzg4NCmgybLlBMRmr\n" +
 | 
			
		||||
  "sQd7TZjTXLDR8KdCoLXEjq/+8T/0709GAHbrAvv5ndJAlseIOrifEXnzgGWovR/TeIGgUUw3tKZd\n" +
 | 
			
		||||
  "JXDRZslo+S4RFGjxVJgIrCaSD96JntT6s3kr0qN51OyLrIdTaEJMUVF0HhsnLuP1Hyl0Te2v9+GS\n" +
 | 
			
		||||
  "mYHovjrHF1D2t8b8m7CKa9aIA5GPBnc6hQLdmNVDeD/GMBWsm2vLV7eJUYs66MmEDNuxUCAKGkq6\n" +
 | 
			
		||||
  "ahq97BvIxYSazQ==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										37
									
								
								pems/ca-148.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								pems/ca-148.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,37 @@
 | 
			
		||||
  // StartCom Certification Authority
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIHhzCCBW+gAwIBAgIBLTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMN\n" +
 | 
			
		||||
  "U3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmlu\n" +
 | 
			
		||||
  "ZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0\n" +
 | 
			
		||||
  "NjM3WhcNMzYwOTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20gTHRk\n" +
 | 
			
		||||
  "LjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMg\n" +
 | 
			
		||||
  "U3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAw\n" +
 | 
			
		||||
  "ggIKAoICAQDBiNsJvGxGfHiflXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1y\n" +
 | 
			
		||||
  "o4UcodM9tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1YjS6LIp/\n" +
 | 
			
		||||
  "Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srhJosaNnZcAdt0FCX+7bWgiA/d\n" +
 | 
			
		||||
  "eMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt\n" +
 | 
			
		||||
  "2PZE4XNiHzvEvqBTViVsUQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z\n" +
 | 
			
		||||
  "6+hsTXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2OqqGwaVLRcJXrJ\n" +
 | 
			
		||||
  "osmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/\n" +
 | 
			
		||||
  "untp+HDH+no32NgN0nZPV/+Qt+OR0t3vwmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVc\n" +
 | 
			
		||||
  "UjyJthkqcwEKDwOzEmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT\n" +
 | 
			
		||||
  "37uMdBNSSwIDAQABo4ICEDCCAgwwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD\n" +
 | 
			
		||||
  "VR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMB8GA1UdIwQYMBaAFE4L7xqkQFulF2mHMMo0aEPQ\n" +
 | 
			
		||||
  "Qa7yMIIBWgYDVR0gBIIBUTCCAU0wggFJBgsrBgEEAYG1NwEBATCCATgwLgYIKwYBBQUHAgEWImh0\n" +
 | 
			
		||||
  "dHA6Ly93d3cuc3RhcnRzc2wuY29tL3BvbGljeS5wZGYwNAYIKwYBBQUHAgEWKGh0dHA6Ly93d3cu\n" +
 | 
			
		||||
  "c3RhcnRzc2wuY29tL2ludGVybWVkaWF0ZS5wZGYwgc8GCCsGAQUFBwICMIHCMCcWIFN0YXJ0IENv\n" +
 | 
			
		||||
  "bW1lcmNpYWwgKFN0YXJ0Q29tKSBMdGQuMAMCAQEagZZMaW1pdGVkIExpYWJpbGl0eSwgcmVhZCB0\n" +
 | 
			
		||||
  "aGUgc2VjdGlvbiAqTGVnYWwgTGltaXRhdGlvbnMqIG9mIHRoZSBTdGFydENvbSBDZXJ0aWZpY2F0\n" +
 | 
			
		||||
  "aW9uIEF1dGhvcml0eSBQb2xpY3kgYXZhaWxhYmxlIGF0IGh0dHA6Ly93d3cuc3RhcnRzc2wuY29t\n" +
 | 
			
		||||
  "L3BvbGljeS5wZGYwEQYJYIZIAYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBG\n" +
 | 
			
		||||
  "cmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAgEAjo/n3JR5\n" +
 | 
			
		||||
  "fPGFf59Jb2vKXfuM/gTFwWLRfUKKvFO3lANmMD+x5wqnUCBVJX92ehQN6wQOQOY+2IirByeDqXWm\n" +
 | 
			
		||||
  "N3PH/UvSTa0XQMhGvjt/UfzDtgUx3M2FIk5xt/JxXrAaxrqTi3iSSoX4eA+D/i+tLPfkpLst0OcN\n" +
 | 
			
		||||
  "Org+zvZ49q5HJMqjNTbOx8aHmNrs++myziebiMMEofYLWWivydsQD032ZGNcpRJvkrKTlMeIFw6T\n" +
 | 
			
		||||
  "tn5ii5B/q06f/ON1FE8qMt9bDeD1e5MNq6HPh+GlBEXoPBKlCcWw0bdT82AUuoVpaiF8H3VhFyAX\n" +
 | 
			
		||||
  "e2w7QSlc4axa0c2Mm+tgHRns9+Ww2vl5GKVFP0lDV9LdJNUso/2RjSe15esUBppMeyG7Oq0wBhjA\n" +
 | 
			
		||||
  "2MFrLH9ZXF2RsXAiV+uKa0hK1Q8p7MZAwC+ITGgBF3f0JBlPvfrhsiAhS90a2Cl9qrjeVOwhVYBs\n" +
 | 
			
		||||
  "HvUwyKMQ5bLmKhQxw4UtjJixhlpPiVktucf3HMiKf8CdBUrmQk9io20ppB+Fq9vlgcitKj1MXVuE\n" +
 | 
			
		||||
  "JnHEhV5xJMqlG2zYYdMa4FTbzrqpMrUi9nNBCV24F10OD5mQ1kfabwo6YigUZ4LZ8dCAWZvLMdib\n" +
 | 
			
		||||
  "D4x3TrVoivJs9iQOLWxwxXPR3hTQcY+203sC9uO41Alua551hDnmfyWl8kgAwKQB2j8=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										28
									
								
								pems/ca-149.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								pems/ca-149.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
			
		||||
  // StartCom Certification Authority G2
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFYzCCA0ugAwIBAgIBOzANBgkqhkiG9w0BAQsFADBTMQswCQYDVQQGEwJJTDEWMBQGA1UEChMN\n" +
 | 
			
		||||
  "U3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg\n" +
 | 
			
		||||
  "RzIwHhcNMTAwMTAxMDEwMDAxWhcNMzkxMjMxMjM1OTAxWjBTMQswCQYDVQQGEwJJTDEWMBQGA1UE\n" +
 | 
			
		||||
  "ChMNU3RhcnRDb20gTHRkLjEsMCoGA1UEAxMjU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp\n" +
 | 
			
		||||
  "dHkgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2iTZbB7cgNr2Cu+EWIAOVeq8O\n" +
 | 
			
		||||
  "o1XJJZlKxdBWQYeQTSFgpBSHO839sj60ZwNq7eEPS8CRhXBF4EKe3ikj1AENoBB5uNsDvfOpL9HG\n" +
 | 
			
		||||
  "4A/LnooUCri99lZi8cVytjIl2bLzvWXFDSxu1ZJvGIsAQRSCb0AgJnooD/Uefyf3lLE3PbfHkffi\n" +
 | 
			
		||||
  "Aez9lInhzG7TNtYKGXmu1zSCZf98Qru23QumNK9LYP5/Q0kGi4xDuFby2X8hQxfqp0iVAXV16iul\n" +
 | 
			
		||||
  "Q5XqFYSdCI0mblWbq9zSOdIxHWDirMxWRST1HFSr7obdljKF+ExP6JV2tgXdNiNnvP8V4so75qbs\n" +
 | 
			
		||||
  "O+wmETRIjfaAKxojAuuKHDp2KntWFhxyKrOq42ClAJ8Em+JvHhRYW6Vsi1g8w7pOOlz34ZYrPu8H\n" +
 | 
			
		||||
  "vKTlXcxNnw3h3Kq74W4a7I/htkxNeXJdFzULHdfBR9qWJODQcqhaX2YtENwvKhOuJv4KHBnM0D4L\n" +
 | 
			
		||||
  "nMgJLvlblnpHnOl68wVQdJVznjAJ85eCXuaPOQgeWeU1FEIT/wCc976qUM/iUUjXuG+v+E5+M5iS\n" +
 | 
			
		||||
  "FGI6dWPPe/regjupuznixL0sAA7IF6wT700ljtizkC+p2il9Ha90OrInwMEePnWjFqmveiJdnxMa\n" +
 | 
			
		||||
  "z6eg6+OGCtP95paV1yPIN93EfKo2rJgaErHgTuixO/XWb/Ew1wIDAQABo0IwQDAPBgNVHRMBAf8E\n" +
 | 
			
		||||
  "BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUS8W0QGutHLOlHGVuRjaJhwUMDrYwDQYJ\n" +
 | 
			
		||||
  "KoZIhvcNAQELBQADggIBAHNXPyzVlTJ+N9uWkusZXn5T50HsEbZH77Xe7XRcxfGOSeD8bpkTzZ+K\n" +
 | 
			
		||||
  "2s06Ctg6Wgk/XzTQLwPSZh0avZyQN8gMjgdalEVGKua+etqhqaRpEpKwfTbURIfXUfEpY9Z1zRbk\n" +
 | 
			
		||||
  "J4kd+MIySP3bmdCPX1R0zKxnNBFi2QwKN4fRoxdIjtIXHfbX/dtl6/2o1PXWT6RbdejF0mCy2wl+\n" +
 | 
			
		||||
  "JYt7ulKSnj7oxXehPOBKc2thz4bcQ///If4jXSRK9dNtD2IEBVeC2m6kMyV5Sy5UGYvMLD0w6dEG\n" +
 | 
			
		||||
  "/+gyRr61M3Z3qAFdlsHB1b6uJcDJHgoJIIihDsnzb02CVAAgp9KP5DlUFy6NHrgbuxu9mk47EDTc\n" +
 | 
			
		||||
  "nIhT76IxW1hPkWLIwpqazRVdOKnWvvgTtZ8SafJQYqz7Fzf07rh1Z2AQ+4NQ+US1dZxAF7L+/Xld\n" +
 | 
			
		||||
  "blhYXzD8AK6vM8EOTmy6p6ahfzLbOOCxchcKK5HsamMm7YnUeMx0HgX4a/6ManY5Ka5lIxKVCCIc\n" +
 | 
			
		||||
  "l85bBu4M4ru8H0ST9tg4RQUh7eStqxK2A6RCLi3ECToDZ2mEmuFZkIoohdVddLHRDiBYmxOlsGOm\n" +
 | 
			
		||||
  "7XtH/UVVMKTumtTm4ofvmMkyghEpIrwACjFeLQ/Ajulrso8uBtjRkcfGEvRM/TAXw8HaOFvjqerm\n" +
 | 
			
		||||
  "obp573PYtlNXLfbQ4ddI\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										23
									
								
								pems/ca-154.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								pems/ca-154.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
  // TURKTRUST Certificate Services Provider Root 2007
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIEPTCCAyWgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvzE/MD0GA1UEAww2VMOcUktUUlVTVCBF\n" +
 | 
			
		||||
  "bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEP\n" +
 | 
			
		||||
  "MA0GA1UEBwwGQW5rYXJhMV4wXAYDVQQKDFVUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg\n" +
 | 
			
		||||
  "QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgQXJhbMSxayAyMDA3MB4X\n" +
 | 
			
		||||
  "DTA3MTIyNTE4MzcxOVoXDTE3MTIyMjE4MzcxOVowgb8xPzA9BgNVBAMMNlTDnFJLVFJVU1QgRWxl\n" +
 | 
			
		||||
  "a3Ryb25payBTZXJ0aWZpa2EgSGl6bWV0IFNhxJ9sYXnEsWPEsXPEsTELMAkGA1UEBhMCVFIxDzAN\n" +
 | 
			
		||||
  "BgNVBAcMBkFua2FyYTFeMFwGA1UECgxVVMOcUktUUlVTVCBCaWxnaSDEsGxldGnFn2ltIHZlIEJp\n" +
 | 
			
		||||
  "bGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkgQS7Fni4gKGMpIEFyYWzEsWsgMjAwNzCCASIw\n" +
 | 
			
		||||
  "DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKu3PgqMyKVYFeaK7yc9SrToJdPNM8Ig3BnuiD9N\n" +
 | 
			
		||||
  "YvDdE3ePYakqtdTyuTFYKTsvP2qcb3N2Je40IIDu6rfwxArNK4aUyeNgsURSsloptJGXg9i3phQv\n" +
 | 
			
		||||
  "KUmi8wUG+7RP2qFsmmaf8EMJyupyj+sA1zU511YXRxcw9L6/P8JorzZAwan0qafoEGsIiveGHtya\n" +
 | 
			
		||||
  "KhUG9qPw9ODHFNRRf8+0222vR5YXm3dx2KdxnSQM9pQ/hTEST7ruToK4uT6PIzdezKKqdfcYbwnT\n" +
 | 
			
		||||
  "rqdUKDT74eA7YH2gvnmJhsifLfkKS8RQouf9eRbHegsYz85M733WB2+Y8a+xwXrXgTW4qhe04MsC\n" +
 | 
			
		||||
  "AwEAAaNCMEAwHQYDVR0OBBYEFCnFkKslrxHkYb+j/4hhkeYO/pyBMA4GA1UdDwEB/wQEAwIBBjAP\n" +
 | 
			
		||||
  "BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQAQDdr4Ouwo0RSVgrESLFF6QSU2TJ/s\n" +
 | 
			
		||||
  "Px+EnWVUXKgWAkD6bho3hO9ynYYKVZ1WKKxmLNA6VpM0ByWtCLCPyA8JWcqdmBzlVPi5RX9ql2+I\n" +
 | 
			
		||||
  "aE1KBiY3iAIOtsbWcpnOa3faYjGkVh+uX4132l32iPwa2Z61gfAyuOOI0JzzaqC5mxRZNTZPz/OO\n" +
 | 
			
		||||
  "Xl0XrRWV2N2y1RVuAE6zS89mlOTgzbUF2mNXi+WzqtvALhyQRNsaXRik7r4EW5nVcV9VZWRi1aKb\n" +
 | 
			
		||||
  "BFmGyGJ353yCRWo9F7/snXUMrqNvWtMvmDb08PUZqxFdyKbjKlhqQgnDvZImZjINXQhVdP+MmNAK\n" +
 | 
			
		||||
  "poRq0Tl9\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										46
									
								
								pems/ca-157.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								pems/ca-157.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
			
		||||
  // PSCProcert
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIJhjCCB26gAwIBAgIBCzANBgkqhkiG9w0BAQsFADCCAR4xPjA8BgNVBAMTNUF1dG9yaWRhZCBk\n" +
 | 
			
		||||
  "ZSBDZXJ0aWZpY2FjaW9uIFJhaXogZGVsIEVzdGFkbyBWZW5lem9sYW5vMQswCQYDVQQGEwJWRTEQ\n" +
 | 
			
		||||
  "MA4GA1UEBxMHQ2FyYWNhczEZMBcGA1UECBMQRGlzdHJpdG8gQ2FwaXRhbDE2MDQGA1UEChMtU2lz\n" +
 | 
			
		||||
  "dGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMUMwQQYDVQQLEzpTdXBl\n" +
 | 
			
		||||
  "cmludGVuZGVuY2lhIGRlIFNlcnZpY2lvcyBkZSBDZXJ0aWZpY2FjaW9uIEVsZWN0cm9uaWNhMSUw\n" +
 | 
			
		||||
  "IwYJKoZIhvcNAQkBFhZhY3JhaXpAc3VzY2VydGUuZ29iLnZlMB4XDTEwMTIyODE2NTEwMFoXDTIw\n" +
 | 
			
		||||
  "MTIyNTIzNTk1OVowgdExJjAkBgkqhkiG9w0BCQEWF2NvbnRhY3RvQHByb2NlcnQubmV0LnZlMQ8w\n" +
 | 
			
		||||
  "DQYDVQQHEwZDaGFjYW8xEDAOBgNVBAgTB01pcmFuZGExKjAoBgNVBAsTIVByb3ZlZWRvciBkZSBD\n" +
 | 
			
		||||
  "ZXJ0aWZpY2Fkb3MgUFJPQ0VSVDE2MDQGA1UEChMtU2lzdGVtYSBOYWNpb25hbCBkZSBDZXJ0aWZp\n" +
 | 
			
		||||
  "Y2FjaW9uIEVsZWN0cm9uaWNhMQswCQYDVQQGEwJWRTETMBEGA1UEAxMKUFNDUHJvY2VydDCCAiIw\n" +
 | 
			
		||||
  "DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANW39KOUM6FGqVVhSQ2oh3NekS1wwQYalNo97BVC\n" +
 | 
			
		||||
  "wfWMrmoX8Yqt/ICV6oNEolt6Vc5Pp6XVurgfoCfAUFM+jbnADrgV3NZs+J74BCXfgI8Qhd19L3uA\n" +
 | 
			
		||||
  "3VcAZCP4bsm+lU/hdezgfl6VzbHvvnpC2Mks0+saGiKLt38GieU89RLAu9MLmV+QfI4tL3czkkoh\n" +
 | 
			
		||||
  "RqipCKzx9hEC2ZUWno0vluYC3XXCFCpa1sl9JcLB/KpnheLsvtF8PPqv1W7/U0HU9TI4seJfxPmO\n" +
 | 
			
		||||
  "EO8GqQKJ/+MMbpfg353bIdD0PghpbNjU5Db4g7ayNo+c7zo3Fn2/omnXO1ty0K+qP1xmk6wKImG2\n" +
 | 
			
		||||
  "0qCZyFSTXai20b1dCl53lKItwIKOvMoDKjSuc/HUtQy9vmebVOvh+qBa7Dh+PsHMosdEMXXqP+UH\n" +
 | 
			
		||||
  "0quhJZb25uSgXTcYOWEAM11G1ADEtMo88aKjPvM6/2kwLkDd9p+cJsmWN63nOaK/6mnbVSKVUyqU\n" +
 | 
			
		||||
  "td+tFjiBdWbjxywbk5yqjKPK2Ww8F22c3HxT4CAnQzb5EuE8XL1mv6JpIzi4mWCZDlZTOpx+FIyw\n" +
 | 
			
		||||
  "Bm/xhnaQr/2v/pDGj59/i5IjnOcVdo/Vi5QTcmn7K2FjiO/mpF7moxdqWEfLcU8UC17IAggmosvp\n" +
 | 
			
		||||
  "r2uKGcfLFFb14dq12fy/czja+eevbqQ34gcnAgMBAAGjggMXMIIDEzASBgNVHRMBAf8ECDAGAQH/\n" +
 | 
			
		||||
  "AgEBMDcGA1UdEgQwMC6CD3N1c2NlcnRlLmdvYi52ZaAbBgVghl4CAqASDBBSSUYtRy0yMDAwNDAz\n" +
 | 
			
		||||
  "Ni0wMB0GA1UdDgQWBBRBDxk4qpl/Qguk1yeYVKIXTC1RVDCCAVAGA1UdIwSCAUcwggFDgBStuyId\n" +
 | 
			
		||||
  "xuDSAaj9dlBSk+2YwU2u06GCASakggEiMIIBHjE+MDwGA1UEAxM1QXV0b3JpZGFkIGRlIENlcnRp\n" +
 | 
			
		||||
  "ZmljYWNpb24gUmFpeiBkZWwgRXN0YWRvIFZlbmV6b2xhbm8xCzAJBgNVBAYTAlZFMRAwDgYDVQQH\n" +
 | 
			
		||||
  "EwdDYXJhY2FzMRkwFwYDVQQIExBEaXN0cml0byBDYXBpdGFsMTYwNAYDVQQKEy1TaXN0ZW1hIE5h\n" +
 | 
			
		||||
  "Y2lvbmFsIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExQzBBBgNVBAsTOlN1cGVyaW50ZW5k\n" +
 | 
			
		||||
  "ZW5jaWEgZGUgU2VydmljaW9zIGRlIENlcnRpZmljYWNpb24gRWxlY3Ryb25pY2ExJTAjBgkqhkiG\n" +
 | 
			
		||||
  "9w0BCQEWFmFjcmFpekBzdXNjZXJ0ZS5nb2IudmWCAQowDgYDVR0PAQH/BAQDAgEGME0GA1UdEQRG\n" +
 | 
			
		||||
  "MESCDnByb2NlcnQubmV0LnZloBUGBWCGXgIBoAwMClBTQy0wMDAwMDKgGwYFYIZeAgKgEgwQUklG\n" +
 | 
			
		||||
  "LUotMzE2MzUzNzMtNzB2BgNVHR8EbzBtMEagRKBChkBodHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52\n" +
 | 
			
		||||
  "ZS9sY3IvQ0VSVElGSUNBRE8tUkFJWi1TSEEzODRDUkxERVIuY3JsMCOgIaAfhh1sZGFwOi8vYWNy\n" +
 | 
			
		||||
  "YWl6LnN1c2NlcnRlLmdvYi52ZTA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9v\n" +
 | 
			
		||||
  "Y3NwLnN1c2NlcnRlLmdvYi52ZTBBBgNVHSAEOjA4MDYGBmCGXgMBAjAsMCoGCCsGAQUFBwIBFh5o\n" +
 | 
			
		||||
  "dHRwOi8vd3d3LnN1c2NlcnRlLmdvYi52ZS9kcGMwDQYJKoZIhvcNAQELBQADggIBACtZ6yKZu4Sq\n" +
 | 
			
		||||
  "T96QxtGGcSOeSwORR3C7wJJg7ODU523G0+1ng3dS1fLld6c2suNUvtm7CpsR72H0xpkzmfWvADmN\n" +
 | 
			
		||||
  "g7+mvTV+LFwxNG9s2/NkAZiqlCxB3RWGymspThbASfzXg0gTB1GEMVKIu4YXx2sviiCtxQuPcD4q\n" +
 | 
			
		||||
  "uxtxj7mkoP3YldmvWb8lK5jpY5MvYB7Eqvh39YtsL+1+LrVPQA3uvFd359m21D+VJzog1eWuq2w1\n" +
 | 
			
		||||
  "n8GhHVnchIHuTQfiSLaeS5UtQbHh6N5+LwUeaO6/u5BlOsju6rEYNxxik6SgMexxbJHmpHmJWhSn\n" +
 | 
			
		||||
  "FFAFTKQAVzAswbVhltw+HoSvOULP5dAssSS830DD7X9jSr3hTxJkhpXzsOfIt+FTvZLm8wyWuevo\n" +
 | 
			
		||||
  "5pLtp4EJFAv8lXrPj9Y0TzYS3F7RNHXGRoAvlQSMx4bEqCaJqD8Zm4G7UaRKhqsLEQ+xrmNTbSjq\n" +
 | 
			
		||||
  "3TNWOByyrYDT13K9mmyZY+gAu0F2BbdbmRiKw7gSXFbPVgx96OLP7bx0R/vu0xdOIk9W/1DzLuY5\n" +
 | 
			
		||||
  "poLWccret9W6aAjtmcz9opLLabid+Qqkpj5PkygqYWwHJgD/ll9ohri4zspV4KuxPX+Y1zMOWj3Y\n" +
 | 
			
		||||
  "eMLEYC/HYvBhkdI4sPaeVdtAgAUSM84dkpvRabP/v/GSCmE1P93+hvS84Bpxs2Km\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										21
									
								
								pems/ca-158.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								pems/ca-158.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
  // China Internet Network Information Center EV Certificates Root
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIID9zCCAt+gAwIBAgIESJ8AATANBgkqhkiG9w0BAQUFADCBijELMAkGA1UEBhMCQ04xMjAwBgNV\n" +
 | 
			
		||||
  "BAoMKUNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyMUcwRQYDVQQDDD5D\n" +
 | 
			
		||||
  "aGluYSBJbnRlcm5ldCBOZXR3b3JrIEluZm9ybWF0aW9uIENlbnRlciBFViBDZXJ0aWZpY2F0ZXMg\n" +
 | 
			
		||||
  "Um9vdDAeFw0xMDA4MzEwNzExMjVaFw0zMDA4MzEwNzExMjVaMIGKMQswCQYDVQQGEwJDTjEyMDAG\n" +
 | 
			
		||||
  "A1UECgwpQ2hpbmEgSW50ZXJuZXQgTmV0d29yayBJbmZvcm1hdGlvbiBDZW50ZXIxRzBFBgNVBAMM\n" +
 | 
			
		||||
  "PkNoaW5hIEludGVybmV0IE5ldHdvcmsgSW5mb3JtYXRpb24gQ2VudGVyIEVWIENlcnRpZmljYXRl\n" +
 | 
			
		||||
  "cyBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm35z7r07eKpkQ0H1UN+U8i6y\n" +
 | 
			
		||||
  "jUqORlTSIRLIOTJCBumD1Z9S7eVnAztUwYyZmczpwA//DdmEEbK40ctb3B75aDFk4Zv6dOtouSCV\n" +
 | 
			
		||||
  "98YPjUesWgbdYavi7NifFy2cyjw1l1VxzUOFsUcW9SxTgHbP0wBkvUCZ3czY28Sf1hNfQYOL+Q2H\n" +
 | 
			
		||||
  "klY0bBoQCxfVWhyXWIQ8hBouXJE0bhlffxdpxWXvayHG1VA6v2G5BY3vbzQ6sm8UY78WO5upKv23\n" +
 | 
			
		||||
  "KzhmBsUs4qpnHkWnjQRmQvaPK++IIGmPMowUc9orhpFjIpryp9vOiYurXccUwVswah+xt54ugQEC\n" +
 | 
			
		||||
  "7c+WXmPbqOY4twIDAQABo2MwYTAfBgNVHSMEGDAWgBR8cks5x8DbYqVPm6oYNJKiyoOCWTAPBgNV\n" +
 | 
			
		||||
  "HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUfHJLOcfA22KlT5uqGDSSosqD\n" +
 | 
			
		||||
  "glkwDQYJKoZIhvcNAQEFBQADggEBACrDx0M3j92tpLIM7twUbY8opJhJywyA6vPtI2Z1fcXTIWd5\n" +
 | 
			
		||||
  "0XPFtQO3WKwMVC/GVhMPMdoG52U7HW8228gd+f2ABsqjPWYWqJ1MFn3AlUa1UeTiH9fqBk1jjZaM\n" +
 | 
			
		||||
  "7+czV0I664zBechNdn3e9rG3geCg+aF4RhcaVpjwTj2rHO3sOdwHSPdj/gauwqRcalsyiMXHM4Ws\n" +
 | 
			
		||||
  "ZkJHwlgkmeHlPuV1LI5D1l08eB6olYIpUNHRFrrvwb562bTYzB5MRuF3sTGrvSrIzo9uoV1/A3U0\n" +
 | 
			
		||||
  "5K2JRVRevq4opbs/eHnrc7MKDf2+yfdWrPa37S+bISnHOLaVxATywy39FCqQmbkHzJ8=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										30
									
								
								pems/ca-160.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								pems/ca-160.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,30 @@
 | 
			
		||||
  // Swisscom Root EV CA 2
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIF4DCCA8igAwIBAgIRAPL6ZOJ0Y9ON/RAdBB92ylgwDQYJKoZIhvcNAQELBQAwZzELMAkGA1UE\n" +
 | 
			
		||||
  "BhMCY2gxETAPBgNVBAoTCFN3aXNzY29tMSUwIwYDVQQLExxEaWdpdGFsIENlcnRpZmljYXRlIFNl\n" +
 | 
			
		||||
  "cnZpY2VzMR4wHAYDVQQDExVTd2lzc2NvbSBSb290IEVWIENBIDIwHhcNMTEwNjI0MDk0NTA4WhcN\n" +
 | 
			
		||||
  "MzEwNjI1MDg0NTA4WjBnMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT\n" +
 | 
			
		||||
  "HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxHjAcBgNVBAMTFVN3aXNzY29tIFJvb3QgRVYg\n" +
 | 
			
		||||
  "Q0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMT3HS9X6lds93BdY7BxUglgRCgz\n" +
 | 
			
		||||
  "o3pOCvrY6myLURYaVa5UJsTMRQdBTxB5f3HSek4/OE6zAMaVylvNwSqD1ycfMQ4jFrclyxy0uYAy\n" +
 | 
			
		||||
  "Xhqdk/HoPGAsp15XGVhRXrwsVgu42O+LgrQ8uMIkqBPHoCE2G3pXKSinLr9xJZDzRINpUKTk4Rti\n" +
 | 
			
		||||
  "GZQJo/PDvO/0vezbE53PnUgJUmfANykRHvvSEaeFGHR55E+FFOtSN+KxRdjMDUN/rhPSays/p8Li\n" +
 | 
			
		||||
  "qG12W0OfvrSdsyaGOx9/5fLoZigWJdBLlzin5M8J0TbDC77aO0RYjb7xnglrPvMyxyuHxuxenPaH\n" +
 | 
			
		||||
  "Za0zKcQvidm5y8kDnftslFGXEBuGCxobP/YCfnvUxVFkKJ3106yDgYjTdLRZncHrYTNaRdHLOdAG\n" +
 | 
			
		||||
  "alNgHa/2+2m8atwBz735j9m9W8E6X47aD0upm50qKGsaCnw8qyIL5XctcfaCNYGu+HuB5ur+rPQa\n" +
 | 
			
		||||
  "m3Rc6I8k9l2dRsQs0h4rIWqDJ2dVSqTjyDKXZpBy2uPUZC5f46Fq9mDU5zXNysRojddxyNMkM3Ox\n" +
 | 
			
		||||
  "bPlq4SjbX8Y96L5V5jcb7STZDxmPX2MYWFCBUWVv8p9+agTnNCRxunZLWB4ZvRVgRaoMEkABnRDi\n" +
 | 
			
		||||
  "xzgHcgplwLa7JSnaFp6LNYth7eVxV4O1PHGf40+/fh6Bn0GXAgMBAAGjgYYwgYMwDgYDVR0PAQH/\n" +
 | 
			
		||||
  "BAQDAgGGMB0GA1UdIQQWMBQwEgYHYIV0AVMCAgYHYIV0AVMCAjASBgNVHRMBAf8ECDAGAQH/AgED\n" +
 | 
			
		||||
  "MB0GA1UdDgQWBBRF2aWBbj2ITY1x0kbBbkUe88SAnTAfBgNVHSMEGDAWgBRF2aWBbj2ITY1x0kbB\n" +
 | 
			
		||||
  "bkUe88SAnTANBgkqhkiG9w0BAQsFAAOCAgEAlDpzBp9SSzBc1P6xXCX5145v9Ydkn+0UjrgEjihL\n" +
 | 
			
		||||
  "j6p7jjm02Vj2e6E1CqGdivdj5eu9OYLU43otb98TPLr+flaYC/NUn81ETm484T4VvwYmneTwkLbU\n" +
 | 
			
		||||
  "wp4wLh/vx3rEUMfqe9pQy3omywC0Wqu1kx+AiYQElY2NfwmTv9SoqORjbdlk5LgpWgi/UOGED1V7\n" +
 | 
			
		||||
  "XwgiG/W9mR4U9s70WBCCswo9GcG/W6uqmdjyMb3lOGbcWAXH7WMaLgqXfIeTK7KK4/HsGOV1timH\n" +
 | 
			
		||||
  "59yLGn602MnTihdsfSlEvoqq9X46Lmgxk7lq2prg2+kupYTNHAq4Sgj5nPFhJpiTt3tm7JFe3VE/\n" +
 | 
			
		||||
  "23MPrQRYCd0EApUKPtN236YQHoA96M2kZNEzx5LH4k5E4wnJTsJdhw4Snr8PyQUQ3nqjsTzyP6Wq\n" +
 | 
			
		||||
  "J3mtMX0f/fwZacXduT98zca0wjAefm6S139hdlqP65VNvBFuIXxZN5nQBrz5Bm0yFqXZaajh3DyA\n" +
 | 
			
		||||
  "HmBR3NdUIR7KYndP+tiPsys6DXhyyWhBWkdKwqPrGtcKqzwyVcgKEZzfdNbwQBUdyLmPtTbFr/gi\n" +
 | 
			
		||||
  "uMod89a2GQ+fYWVq6nTIfI/DT11lgh/ZDYnadXL77/FHZxOzyNEZiCcmmpl5fx7kLD977vHeTYuW\n" +
 | 
			
		||||
  "l8PVP3wbI+2ksx0WckNLIOFZfsLorSa/ovc=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										28
									
								
								pems/ca-161.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								pems/ca-161.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,28 @@
 | 
			
		||||
  // CA Disig Root R1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIFaTCCA1GgAwIBAgIJAMMDmu5QkG4oMA0GCSqGSIb3DQEBBQUAMFIxCzAJBgNVBAYTAlNLMRMw\n" +
 | 
			
		||||
  "EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp\n" +
 | 
			
		||||
  "ZyBSb290IFIxMB4XDTEyMDcxOTA5MDY1NloXDTQyMDcxOTA5MDY1NlowUjELMAkGA1UEBhMCU0sx\n" +
 | 
			
		||||
  "EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp\n" +
 | 
			
		||||
  "c2lnIFJvb3QgUjEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCqw3j33Jijp1pedxiy\n" +
 | 
			
		||||
  "3QRkD2P9m5YJgNXoqqXinCaUOuiZc4yd39ffg/N4T0Dhf9Kn0uXKE5Pn7cZ3Xza1lK/oOI7bm+V8\n" +
 | 
			
		||||
  "u8yN63Vz4STN5qctGS7Y1oprFOsIYgrY3LMATcMjfF9DCCMyEtztDK3AfQ+lekLZWnDZv6fXARz2\n" +
 | 
			
		||||
  "m6uOt0qGeKAeVjGu74IKgEH3G8muqzIm1Cxr7X1r5OJeIgpFy4QxTaz+29FHuvlglzmxZcfe+5nk\n" +
 | 
			
		||||
  "CiKxLU3lSCZpq+Kq8/v8kiky6bM+TR8noc2OuRf7JT7JbvN32g0S9l3HuzYQ1VTW8+DiR0jm3hTa\n" +
 | 
			
		||||
  "YVKvJrT1cU/J19IG32PK/yHoWQbgCNWEFVP3Q+V8xaCJmGtzxmjOZd69fwX3se72V6FglcXM6pM6\n" +
 | 
			
		||||
  "vpmumwKjrckWtc7dXpl4fho5frLABaTAgqWjR56M6ly2vGfb5ipN0gTco65F97yLnByn1tUD3AjL\n" +
 | 
			
		||||
  "LhbKXEAz6GfDLuemROoRRRw1ZS0eRWEkG4IupZ0zXWX4Qfkuy5Q/H6MMMSRE7cderVC6xkGbrPAX\n" +
 | 
			
		||||
  "ZcD4XW9boAo0PO7X6oifmPmvTiT6l7Jkdtqr9O3jw2Dv1fkCyC2fg69naQanMVXVz0tv/wQFx1is\n" +
 | 
			
		||||
  "XxYb5dKj6zHbHzMVTdDypVP1y+E9Tmgt2BLdqvLmTZtJ5cUoobqwWsagtQIDAQABo0IwQDAPBgNV\n" +
 | 
			
		||||
  "HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUiQq0OJMa5qvum5EY+fU8PjXQ\n" +
 | 
			
		||||
  "04IwDQYJKoZIhvcNAQEFBQADggIBADKL9p1Kyb4U5YysOMo6CdQbzoaz3evUuii+Eq5FLAR0rBNR\n" +
 | 
			
		||||
  "xVgYZk2C2tXck8An4b58n1KeElb21Zyp9HWc+jcSjxyT7Ff+Bw+r1RL3D65hXlaASfX8MPWbTx9B\n" +
 | 
			
		||||
  "LxyE04nH4toCdu0Jz2zBuByDHBb6lM19oMgY0sidbvW9adRtPTXoHqJPYNcHKfyyo6SdbhWSVhlM\n" +
 | 
			
		||||
  "CrDpfNIZTUJG7L399ldb3Zh+pE3McgODWF3vkzpBemOqfDqo9ayk0d2iLbYq/J8BjuIQscTK5Gfb\n" +
 | 
			
		||||
  "VSUZP/3oNn6z4eGBrxEWi1CXYBmCAMBrTXO40RMHPuq2MU/wQppt4hF05ZSsjYSVPCGvxdpHyN85\n" +
 | 
			
		||||
  "YmLLW1AL14FABZyb7bq2ix4Eb5YgOe2kfSnbSM6C3NQCjR0EMVrHS/BsYVLXtFHCgWzN4funodKS\n" +
 | 
			
		||||
  "ds+xDzdYpPJScWc/DIh4gInByLUfkmO+p3qKViwaqKactV2zY9ATIKHrkWzQjX2v3wvkF7mGnjix\n" +
 | 
			
		||||
  "lAxYjOBVqjtjbZqJYLhkKpLGN/R+Q0O3c+gB53+XD9fyexn9GtePyfqFa3qdnom2piiZk4hA9z7N\n" +
 | 
			
		||||
  "UaPK6u95RyG1/jLix8NRb76AdPCkwzryT+lf3xkK8jsTQ6wxpLPn6/wY1gGp8yqPNg7rtLG8t0zJ\n" +
 | 
			
		||||
  "a7+h89n07eLw4+1knj0vllJPgFOL\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										31
									
								
								pems/ca-163.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								pems/ca-163.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,31 @@
 | 
			
		||||
  // SG TRUST SERVICES RACINE
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIGGTCCBAGgAwIBAgIIPtVRGeZNzn4wDQYJKoZIhvcNAQELBQAwajEhMB8GA1UEAxMYU0cgVFJV\n" +
 | 
			
		||||
  "U1QgU0VSVklDRVMgUkFDSU5FMRwwGgYDVQQLExMwMDAyIDQzNTI1Mjg5NTAwMDIyMRowGAYDVQQK\n" +
 | 
			
		||||
  "ExFTRyBUUlVTVCBTRVJWSUNFUzELMAkGA1UEBhMCRlIwHhcNMTAwOTA2MTI1MzQyWhcNMzAwOTA1\n" +
 | 
			
		||||
  "MTI1MzQyWjBqMSEwHwYDVQQDExhTRyBUUlVTVCBTRVJWSUNFUyBSQUNJTkUxHDAaBgNVBAsTEzAw\n" +
 | 
			
		||||
  "MDIgNDM1MjUyODk1MDAwMjIxGjAYBgNVBAoTEVNHIFRSVVNUIFNFUlZJQ0VTMQswCQYDVQQGEwJG\n" +
 | 
			
		||||
  "UjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANqoVgLsfJXwTukK0rcHoyKLULO5Lhk9\n" +
 | 
			
		||||
  "V9sZqtIr5M5C4myh5F0lHjMdtkXRtPpZilZwyW0IdmlwmubHnAgwE/7m0ZJoYT5MEfJu8rF7V1ZL\n" +
 | 
			
		||||
  "Cb3cD9lxDOiaN94iEByZXtaxFwfTpDktwhpz/cpLKQfCeSnIyCauLMT8I8hL4oZWDyj9tocbaF85\n" +
 | 
			
		||||
  "ZEX9aINsdSQePHWZYfrSFPipS7HYfad40hNiZbXWvn5qA7y1svxkMMPQwpk9maTTzdGxxFOHe0wT\n" +
 | 
			
		||||
  "E2Z/v9VlU2j5XB7ltP82mUWjn2LAfxGCAVTeD2WlOa6dSEyJoxA74OaD9bDaLB56HFwfAKzMq6dg\n" +
 | 
			
		||||
  "ZLPGxXvHVUZ0PJCBDkqOWZ1UsEixUkw7mO6r2jS3U81J2i/rlb4MVxH2lkwEeVyZ1eXkvm/qR+5R\n" +
 | 
			
		||||
  "S+8iJq612BGqQ7t4vwt+tN3PdB0lqYljseI0gcSINTjiAg0PE8nVKoIV8IrEQzJW5FMdHay2z32b\n" +
 | 
			
		||||
  "ll0eZOl0c8RW5BZKUm2SOdPhTQ4/YrnerbUdZbldUv5dCamctKQM2S9FdqXPjmqanqqwEaHrYcbr\n" +
 | 
			
		||||
  "Px78ZrQSnUZ/MhaJvnFFr5Eh2f2Tv7QCkUL/SR/tixVo3R+OrJvdggWcRGkWZBdWX0EPSk8ED2VQ\n" +
 | 
			
		||||
  "hpOX7EW/XcIc3M/E2DrmeAXQxVVVqV7+qzohu+VyFPcLAgMBAAGjgcIwgb8wHQYDVR0OBBYEFCkg\n" +
 | 
			
		||||
  "y/HDD9oGjhOTh/5fYBopu/O2MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUKSDL8cMP2gaO\n" +
 | 
			
		||||
  "E5OH/l9gGim787YwEQYDVR0gBAowCDAGBgRVHSAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j\n" +
 | 
			
		||||
  "cmwuc2d0cnVzdHNlcnZpY2VzLmNvbS9yYWNpbmUtR3JvdXBlU0cvTGF0ZXN0Q1JMMA4GA1UdDwEB\n" +
 | 
			
		||||
  "/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEATEZn4ERQ9cW2urJRCiUTHbfHiC4fuStkoMuTiFJZ\n" +
 | 
			
		||||
  "qmD1zClSF/8E5ze0MRFGfisebKeLPEeaXvSqXZA7RT2fSsmKe47A7j55i5KjyJRKuCgRa6YlX129\n" +
 | 
			
		||||
  "x8j7g09VMeZc8BN8471/Kiw3N5RJr4QfFCeiWBCPCjk3GhIgQY8Z9qkfGe2yNLKtfTNEi18KB0Py\n" +
 | 
			
		||||
  "dkVFLa3kjQ4A/QQIqudr+xe9sAhWDjUqcvCz5006Tw3c82ASszhkjNv54SaNL+9O6CRHPjY0imkP\n" +
 | 
			
		||||
  "KGuLh8a9hSb50+tpIVZgkdb34GLCqHGuLt5mI7VSRqakSDcsfwEWVxH3Jw0O5Q/WkEXhHj8h3NL8\n" +
 | 
			
		||||
  "FhgTPk1qsiZqQF4leP049KxYejcbmEAEx47J1MRnYbGYrvDNDty5r2WDewoEij9hqvddQYbmxkzC\n" +
 | 
			
		||||
  "TzpcVuooO6dEz8hKZPVyYC3jQ7hK4HU8MuSqFtcRucFF2ZtmY2blIrc07rrVdC8lZPOBVMt33lfU\n" +
 | 
			
		||||
  "k+OsBzE6PlwDg1dTx/D+aNglUE0SyObhlY1nqzyTPxcCujjXnvcwpT09RAEzGpqfjtCf8e4wiHPv\n" +
 | 
			
		||||
  "riQZupdzFcHscQyEZLV77LxpPqRtCRY2yko5isune8YdfucziMm+MG2chZUh6Uc7Bn6B4upG5nBY\n" +
 | 
			
		||||
  "gOao8p0LadEziVkw82TTC/bOKwn7fRB2LhA=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										22
									
								
								pems/ca-18.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								pems/ca-18.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,22 @@
 | 
			
		||||
  // Verisign Class 4 Public Primary Certification Authority - G3
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV\n" +
 | 
			
		||||
  "UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv\n" +
 | 
			
		||||
  "cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl\n" +
 | 
			
		||||
  "IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh\n" +
 | 
			
		||||
  "dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw\n" +
 | 
			
		||||
  "CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy\n" +
 | 
			
		||||
  "dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv\n" +
 | 
			
		||||
  "cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkg\n" +
 | 
			
		||||
  "Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" +
 | 
			
		||||
  "ggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaS\n" +
 | 
			
		||||
  "tBO3IFsJ+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM\n" +
 | 
			
		||||
  "8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdLMEYH5IBtptiW\n" +
 | 
			
		||||
  "Lugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XYufTsgsbSPZUd5cBPhMnZo0QoBmrX\n" +
 | 
			
		||||
  "Razwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA\n" +
 | 
			
		||||
  "j/ola09b5KROJ1WrIhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt\n" +
 | 
			
		||||
  "mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm\n" +
 | 
			
		||||
  "fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c2NU8Qh0XwRJd\n" +
 | 
			
		||||
  "RTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtG\n" +
 | 
			
		||||
  "UPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										25
									
								
								pems/ca-19.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								pems/ca-19.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,25 @@
 | 
			
		||||
  // Entrust.net Secure Server CA
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMCVVMxFDASBgNV\n" +
 | 
			
		||||
  "BAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkg\n" +
 | 
			
		||||
  "cmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRl\n" +
 | 
			
		||||
  "ZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhv\n" +
 | 
			
		||||
  "cml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIG\n" +
 | 
			
		||||
  "A1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBi\n" +
 | 
			
		||||
  "eSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1p\n" +
 | 
			
		||||
  "dGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0\n" +
 | 
			
		||||
  "aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQ\n" +
 | 
			
		||||
  "aO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5\n" +
 | 
			
		||||
  "gXpa0zf3wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcw\n" +
 | 
			
		||||
  "ggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHYpIHVMIHSMQsw\n" +
 | 
			
		||||
  "CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5l\n" +
 | 
			
		||||
  "dC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF\n" +
 | 
			
		||||
  "bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl\n" +
 | 
			
		||||
  "cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu\n" +
 | 
			
		||||
  "dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkw\n" +
 | 
			
		||||
  "NTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0Bow\n" +
 | 
			
		||||
  "HQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA\n" +
 | 
			
		||||
  "BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyN\n" +
 | 
			
		||||
  "Ewr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9\n" +
 | 
			
		||||
  "n9cd2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										18
									
								
								pems/ca-2.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								pems/ca-2.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
  // Thawte Premium Server CA
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkExFTATBgNVBAgT\n" +
 | 
			
		||||
  "DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3Vs\n" +
 | 
			
		||||
  "dGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UE\n" +
 | 
			
		||||
  "AxMYVGhhd3RlIFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZl\n" +
 | 
			
		||||
  "ckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYT\n" +
 | 
			
		||||
  "AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMU\n" +
 | 
			
		||||
  "VGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2\n" +
 | 
			
		||||
  "aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3DQEJARYZ\n" +
 | 
			
		||||
  "cHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2\n" +
 | 
			
		||||
  "aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIh\n" +
 | 
			
		||||
  "Udib0GfQug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/\n" +
 | 
			
		||||
  "qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOBgQAm\n" +
 | 
			
		||||
  "SCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUIhfzJATj/Tb7yFkJD57taRvvBxhEf\n" +
 | 
			
		||||
  "8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7t\n" +
 | 
			
		||||
  "UCemDaYj+bvLpgcUQg==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										15
									
								
								pems/ca-22.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								pems/ca-22.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
  // Equifax Secure Global eBusiness CA
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT\n" +
 | 
			
		||||
  "RXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNp\n" +
 | 
			
		||||
  "bmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMx\n" +
 | 
			
		||||
  "HDAaBgNVBAoTE0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEds\n" +
 | 
			
		||||
  "b2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRV\n" +
 | 
			
		||||
  "PEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzN\n" +
 | 
			
		||||
  "qfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxn\n" +
 | 
			
		||||
  "hcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0j\n" +
 | 
			
		||||
  "BBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hs\n" +
 | 
			
		||||
  "MA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okEN\n" +
 | 
			
		||||
  "I7SS+RkAZ70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIY\n" +
 | 
			
		||||
  "NMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
							
								
								
									
										15
									
								
								pems/ca-23.pem
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								pems/ca-23.pem
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
  // Equifax Secure eBusiness CA 1
 | 
			
		||||
  "-----BEGIN CERTIFICATE-----\n" +
 | 
			
		||||
  "MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMT\n" +
 | 
			
		||||
  "RXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENB\n" +
 | 
			
		||||
  "LTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UE\n" +
 | 
			
		||||
  "ChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNz\n" +
 | 
			
		||||
  "IENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ\n" +
 | 
			
		||||
  "1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4a\n" +
 | 
			
		||||
  "IZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBk\n" +
 | 
			
		||||
  "MBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4MlIR21kW\n" +
 | 
			
		||||
  "Nl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQF\n" +
 | 
			
		||||
  "AAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5\n" +
 | 
			
		||||
  "lSE/9dR+WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+\n" +
 | 
			
		||||
  "KpYrtWKmpj29f5JZzVoqgrI3eQ==\n" +
 | 
			
		||||
  "-----END CERTIFICATE-----\n"
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user