mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-04-23 20:31:25 +00:00
improve https support on Windows
This commit is contained in:
parent
68478cd162
commit
d807c805dc
1
bin.js
1
bin.js
@ -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
27
cert/gen-cer.cmd
Normal 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
12
cert/gen-rootCA.cmd
Normal 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
|
@ -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)));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user