@@ -7,11 +7,11 @@ var defaultAttrs = [
77 { shortName : 'OU' , value : 'AnyProxy SSL Proxy' }
88] ;
99
10- function getKeysAndCert ( ) {
10+ function getKeysAndCert ( serialNumber ) {
1111 var keys = forge . pki . rsa . generateKeyPair ( 1024 ) ;
1212 var cert = forge . pki . createCertificate ( ) ;
1313 cert . publicKey = keys . publicKey ;
14- cert . serialNumber = '01' ;
14+ cert . serialNumber = serialNumber || ( Math . floor ( Math . random ( ) * 100000 ) + '' ) ;
1515 cert . validity . notBefore = new Date ( ) ;
1616 cert . validity . notBefore . setFullYear ( cert . validity . notBefore . getFullYear ( ) - 10 ) ; // 10 years
1717 cert . validity . notAfter = new Date ( ) ;
@@ -56,15 +56,20 @@ function generateRootCA(){
5656}
5757
5858function generateCertsForHostname ( domain , rootCAConfig ) {
59- var keysAndCert = getKeysAndCert ( ) ;
59+
60+ //generate a serialNumber for domain
61+ var md = forge . md . md5 . create ( ) ;
62+ md . update ( domain ) ;
63+
64+ var keysAndCert = getKeysAndCert ( md . digest ( ) . toHex ( ) ) ;
6065 keys = keysAndCert . keys ;
6166 cert = keysAndCert . cert ;
6267
63- var caCert = forge . pki . certificateFromPem ( rootCAConfig . cert )
64- var caKey = forge . pki . privateKeyFromPem ( rootCAConfig . key )
68+ var caCert = forge . pki . certificateFromPem ( rootCAConfig . cert ) ;
69+ var caKey = forge . pki . privateKeyFromPem ( rootCAConfig . key ) ;
6570
6671 // issuer from CA
67- cert . setIssuer ( caCert . subject . attributes )
72+ cert . setIssuer ( caCert . subject . attributes ) ;
6873
6974 var attrs = defaultAttrs . concat ( [
7075 {
0 commit comments