Pages

Saturday, 24 August 2013

"利用SPDYproxy+chrome翻墙"一文的补充

我在http://briteming.blogspot.co.uk/2012/08/nodejsspdyproxy.html 一文说过"利用SPDYproxy+chrome翻墙",因去年生成自签名证书时,设定了证书有效期为365天,现在一年过去了,再用此法翻墙失败。解决方法:
先登录vps,删除服务器上的private.key和public.crt,再运行如下命令重新生成它们:
 openssl req -x509 -nodes -days 1825 -newkey rsa:2048 -keyout private.key -out public.crt
这次,我把证书有效期设为5年(365X5=1825).

然后运行ps aux|grep node,查找node进程-
as3:~# ps aux|grep node
root      2021  0.0  0.0  40532     8 ?        Sl   Jul20   0:01 /usr/local/bin/node server.js
root      2023  0.0  1.6 105328  8484 ?        Sl   Jul20   2:04 /usr/local/bin/node /root/main.js -k /root/private.key -c /root/public.crt -p 443 -U myusername -P mypassword
root     10552  0.0  0.0  37436     8 ?        Sl   Jul20   0:00 node /root/snova-c4-nodejs-server-0.22.0/server.js
root     24904  0.0  0.1   3876   796 pts/1    S+   04:41   0:00 grep node

可以看到有3个node进程。需要杀死/usr/local/bin/node /root/main.js -k /root/private.key -c /root/public.crt -p 443 -U myusername -P mypassword这个进程。其进程号为2023,于是
as3:~# kill 2023
然后再重新运行/usr/local/bin/node /root/main.js -k /root/private.key -c /root/public.crt -p 443 -U myusername -P mypassword这个进程:
nohup /usr/local/bin/node /root/main.js -k /root/private.key -c /root/public.crt -p 443 -U myusername -P mypassword > /dev/null &

然后用winscp下载新生成的public.crt到本机。在本机,导入这个新生成的public.crt到chrome的"受信任的根证书颁发机构"下,就又可翻墙了。在导入之前,需在chrome的“设置”里,删除之前导入的证书。