fix the issue about duplicated cert serial number #70

This commit is contained in:
OttoMao
2016-06-06 00:05:55 +08:00
parent 0fb202ec4d
commit a925cbed55
2 changed files with 12 additions and 7 deletions

View File

@@ -7,11 +7,11 @@ var defaultAttrs = [
{ shortName: 'OU', value: 'AnyProxy SSL Proxy'}
];
function getKeysAndCert(){
function getKeysAndCert(serialNumber){
var keys = forge.pki.rsa.generateKeyPair(1024);
var cert = forge.pki.createCertificate();
cert.publicKey = keys.publicKey;
cert.serialNumber = '01';
cert.serialNumber = serialNumber || (Math.floor(Math.random() * 100000) + '');
cert.validity.notBefore = new Date();
cert.validity.notBefore.setFullYear(cert.validity.notBefore.getFullYear() - 10); // 10 years
cert.validity.notAfter = new Date();
@@ -56,15 +56,20 @@ function generateRootCA(){
}
function generateCertsForHostname(domain, rootCAConfig){
var keysAndCert = getKeysAndCert();
//generate a serialNumber for domain
var md = forge.md.md5.create();
md.update(domain);
var keysAndCert = getKeysAndCert(md.digest().toHex());
keys = keysAndCert.keys;
cert = keysAndCert.cert;
var caCert = forge.pki.certificateFromPem(rootCAConfig.cert)
var caKey = forge.pki.privateKeyFromPem(rootCAConfig.key)
var caCert = forge.pki.certificateFromPem(rootCAConfig.cert);
var caKey = forge.pki.privateKeyFromPem(rootCAConfig.key);
// issuer from CA
cert.setIssuer(caCert.subject.attributes)
cert.setIssuer(caCert.subject.attributes);
var attrs = defaultAttrs.concat([
{