Merge branch 'v3.3.0' of https://github.com/alibaba/anyproxy into v3.3.0

This commit is contained in:
OttoMao 2015-03-30 17:45:28 +08:00
commit 82e6837dbb
4 changed files with 53 additions and 6 deletions

1
bin.js
View File

@ -33,6 +33,7 @@ if(program.clear){
require("./lib/certMgr").generateRootCA(function(){ require("./lib/certMgr").generateRootCA(function(){
process.exit(0); process.exit(0);
}); });
}else if(program.install){ }else if(program.install){
npm.load({ npm.load({
"prefix": process.env.NODE_PATH + '/anyproxy/' "prefix": process.env.NODE_PATH + '/anyproxy/'

27
cert/gen-cer.cmd Normal file
View File

@ -0,0 +1,27 @@
@echo off
set domain=%1
set outputPath=%2
set commonname=%domain%
set country=ZH
set state=Shanghai
set locality=Shanghai
set organization=a.com
set organizationalunit=IT
set email=a@b.com
set password=a
echo Generating key request for %domain%
openssl genrsa -passout pass:%password% -out %domain%.key 2048
echo Removing passphrase from key
openssl rsa -in %domain%.key -passin pass:%password% -out %domain%.key
echo Creating CSR
openssl req -new -key %domain%.key -out %domain%.csr -passin pass:%password% -subj /C=%country%/ST=%state%/L=%locality%/O=%organization%/OU=%organizationalunit%/CN=%commonname%/emailAddress=%email%
openssl x509 -req -days 3650 -in %domain%.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out %domain%.crt
echo Finished

12
cert/gen-rootCA.cmd Normal file
View File

@ -0,0 +1,12 @@
@echo off
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -days 3650 -out rootCA.crt -subj "/C=CN/ST=SH/L=SH/O=AnyProxy/OU=Section/CN=Anyproxy SSL Proxying/emailAddress=AnyProxy@AnyProxy"
echo =============
echo rootCA generated at :
echo %cd%
echo =============
start .
rem exit 0

View File

@ -9,16 +9,16 @@ var exec = require('child_process').exec,
logUtil = require("./log"), logUtil = require("./log"),
asyncTask = require("async-task-mgr"); asyncTask = require("async-task-mgr");
//TODO : unstable in windows var isWin = /^win/.test(process.platform);
var certDir = path.join(util.getUserHome(),"/.anyproxy_certs/"), certDir = path.join(util.getUserHome(),"/.anyproxy_certs/"),
cmdDir = path.join(__dirname,"..","./cert/"), cmdDir = path.join(__dirname,"..","./cert/"),
cmd_genRoot = path.join(cmdDir,"./gen-rootCA"), cmd_genRoot = isWin ? path.join(cmdDir,"./gen-rootCA.cmd") : path.join(cmdDir,"./gen-rootCA"),
cmd_genCert = path.join(cmdDir,"./gen-cer"), cmd_genCert = isWin ? path.join(cmdDir,"./gen-cer.cmd") : path.join(cmdDir,"./gen-cer"),
createCertTaskMgr = new asyncTask(); createCertTaskMgr = new asyncTask();
if(!fs.existsSync(certDir)){ if(!fs.existsSync(certDir)){
try{ try{
fs.mkdirSync(certDir,0777); //may fail in windows fs.mkdirSync(certDir,0777);
}catch(e){ }catch(e){
logUtil.printLog("===========", logUtil.T_ERR); logUtil.printLog("===========", logUtil.T_ERR);
logUtil.printLog("failed to create cert dir ,please create one by yourself - " + certDir, logUtil.T_ERR); logUtil.printLog("failed to create cert dir ,please create one by yourself - " + certDir, logUtil.T_ERR);
@ -70,9 +70,14 @@ function createCert(hostname,callback){
} }
function clearCerts(cb){ function clearCerts(cb){
exec("rm *.key *.csr *.crt",{cwd : certDir},cb); if(isWin){
exec("del * /q",{cwd : certDir},cb);
}else{
exec("rm *.key *.csr *.crt",{cwd : certDir},cb);
}
} }
function isRootCAFileExists(){ function isRootCAFileExists(){
var crtFile = path.join(certDir,"rootCA.crt"), var crtFile = path.join(certDir,"rootCA.crt"),
keyFile = path.join(certDir,"rootCA.key"); keyFile = path.join(certDir,"rootCA.key");
@ -119,7 +124,9 @@ function generateRootCA(){
logUtil.printLog(color.green("temp certs cleared")); logUtil.printLog(color.green("temp certs cleared"));
var spawnSteam = spawn(cmd_genRoot,['.'],{cwd:certDir,stdio: 'inherit'}); var spawnSteam = spawn(cmd_genRoot,['.'],{cwd:certDir,stdio: 'inherit'});
spawnSteam.on('close', function (code) { spawnSteam.on('close', function (code) {
if(code == 0){ if(code == 0){
logUtil.printLog(color.green("rootCA generated")); logUtil.printLog(color.green("rootCA generated"));
logUtil.printLog(color.green(color.bold("please trust the rootCA.crt in " + certDir))); logUtil.printLog(color.green(color.bold("please trust the rootCA.crt in " + certDir)));