nginx,单机跑了几个虚拟主机。比如a.nau.edu.cn,b.nau.edu.cn,c.nau.edu.cn指向同一ip。
第一个server{}内,如果是
server {
listen a.nau.edu.cn:80;
}
的话,那么不管后面的server{}里面怎么写,都是指向a.nau.edu.cn根目录。
如果改成
server {
listen :80;
}
就没有问题。不知道为什么…
nginx的漏洞:http://www.kb.cert.org/vuls/id/180065
wget http://www.openssl.org/source/openssl-0.9.8k.tar.gz
wget http://sysoev.ru/nginx/nginx-0.6.39.tar.gz
tar xvzf nginx-0.6.39.tar.gz
cd nginx-0.6.39
./configure "--with-http_stub_status_module" "--with-http_addition_module" "--with-pcre=/usr/src/pcre-7.7/" "--with-http_ssl_module" "--with-openssl=/root/openssl-0.9.8k"
make
make install
ps -ef |grep nginx
kill 10986
ps -ef |grep nginx
/usr/local/nginx/sbin/nginx -t
/usr/local/nginx/sbin/nginx -v
没啥难度。最新的稳定nginx是0.7.x了,暂时不研究~
-
首先需要升级OpenSSL和OpenSSH。后者顺带升级下,并非必须。注意顺序,先SSL再SSH。
1
2
3
4
5
6
7
8
9
| #cd /usr/local/src
#wget http://www.openssl.org/source/openssl-0.9.8e.tar.gz
#wget ftp://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-4.6p1.tar.gz
#tar xzvf openssl-0.9.8e.tar.gz
#cd openssl-0.9.8e
#./config --prefix=/usr/local/openssl
#make
#make test
#make install |
1
2
3
4
5
6
| #cd ..
#tar xzvf openssh-4.6p1.tar.gz
#cd openssh-4.6p1
#./configure --prefix=/usr --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man
#make
#make install |
用
查看版本。
-
接下来生成对应服务器的key/crt文件
1
| [root@bbs ~]#openssl genrsa -des3 -out server.key 1024 |
这里会提示你输入一个密码。
根据Key生成一个CSR
1
| [root@bbs ~]#openssl req -new -key server.key -out server.csr |
自己给自己颁发一个证书
1
| [root@bbs ~]# openssl req -new -x509 -nodes -sha1 -days 365 -key server.key -out server.crt |
ok,保存好.crt和.key文件。.csr文件不需要了。
Apache使用的是.crt+.key文件。而nginx使用的是.pem+.key文件。
.pem文件很简单,直接把.crt和.key复制出来,粘贴到新的.pem文件里就行了。
Apache的配置。虚拟主机部分增加:
1
2
3
4
5
6
7
8
9
10
11
12
| <VirtualHost bbs.nau.edu.cn:443>
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /data/certfile/server.crt
SSLCertificateKeyFile /data/certfile/server.key
BrowserMatch ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
ServerAdmin baalchina@nau.edu.cn
DocumentRoot /data/web/bbs
ServerName bbs.nau.edu.cn:443
</VirtualHost> |
如果是nginx,那么:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| server {
listen 443;
server_name bbs.nau.edu.cn;
if ($uri !~* "/logging.php$") {
rewrite ^/(.*)$ http://$host/$1 redirect;
}
ssl on;
ssl_certificate /data/certfile/server.pem;
ssl_certificate_key /data/certfile/server.key;
ssl_session_timeout 5m;
ssl_protocols SSLv2 SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
} |
其他部分和http server是一样的。