mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-06-05 16:58:22 +00:00
fix the issue about duplicated cert serial number #70
This commit is contained in:
parent
0fb202ec4d
commit
a925cbed55
@ -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([
|
||||
{
|
||||
|
@ -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": {
|
||||
|
Loading…
x
Reference in New Issue
Block a user