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([
{

View File

@ -1,6 +1,6 @@
{
"name": "anyproxy",
"version": "3.10.2",
"version": "3.10.3Beta1",
"description": "A fully configurable proxy in NodeJS, which can handle HTTPS requests perfectly.",
"main": "proxy.js",
"bin": {