由于HTTP协议明文传输数据,使得嗅探无处不在,因此对某些网站如购物交易类、注册登陆类等,需要开启HTTPS协议来增加安全性,保证用户的密码不被盗取和嗅探。
HTTPS需要SSL数字安全证书的支持,一般找浏览器信任的CA机构签发数字证书都是要收费的,价格一般在13美元/年至50美元/年不等。(除了StartSSL和PositiveSSL)
如果证书只是给自己用的,防止在线管理时密码被窃听,则可以自行颁发免费的SSL数字安全证书。
Debian5 + OpenSSL + Nginx环境步骤如下:
一、使用OpenSSL生成SSL数字安全证书
openssl genrsa -out privkey.pem 2048
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
上述命令中第一步是生成用户证书 RSA 密钥对,且不带密码。
第二步是证书请求生成和自签名,此时会要求输入参数,随便填,但Common Name必须填即将使用HTTPS的站点名称,比如:*.yourdomain.com 。
二、确保Nginx支持OpenSSL模块
Nginx默认是不支持SSL的,需要重新配置和编译,命令如下:
wget http://nginx.org/download/nginx-0.7.65.tar.gz
tar zxvf nginx-0.7.65.tar.gz
cd /root/nginx-0.7.65
./configure --with-http_stub_status_module --with-http_ssl_module
make
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.old
cp ./objs/nginx /usr/local/nginx/sbin/nginx
kill -USR2 `cat /usr/local/nginx/logs/nginx.pid`
kill -QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin`
上述命令其实也是一次标准的Nginx升级操作,其中的目录需要用户根据具体情况自行更改。
另外,用户也可以在编译前注释掉 auto/cc/gcc 中的 CFLAGS=”$CFLAGS -g” 这行,使Nginx不以Debug模式编译,节约文件和内存占用、提高速度。
三、修改Nginx配置
修改nginx.conf中相应的server段:
server
{
listen 443;
ssl on;
ssl_certificate /etc/ssl/cacert.pem;
ssl_certificate_key /etc/ssl/privkey.pem;
server_name www.yourdoamin.com;
index index.html index.htm index.php;
root /home/wwwroot/yourdomain;
......
......
}
其中SSL数字证书路径和域名路径也应根据实际情况修改。
四、重启Nginx
上传nginx.conf后,测试配置文件是否正确,并重启Nginx:
/usr/local/nginx/sbin/nginx -t
kill -HUP `cat /usr/local/nginx/logs/nginx.pid`
五、使用HTTPS协议访问网站
键入https://www.yourdomain.com 会出现警告框:

由于是自己使用,点击查看证书-安装证书,下次就不会再弹出该警报框。
至此,你就可以使用HTTPS协议安全的访问网站,不用担心用户名和密码会在传输过程中被嗅探、盗取。
wkl17
不知道博主知道StartSSL吗?据说是全球唯一对个人用户免费签证的证书。。
这几天弄了很久了,没技术。。E文也不行,所以弄了很久,还是没弄好。我用的是2K3/IIS6.
不知道博主对这个感兴趣否??如果感兴趣,希望博主弄好了能放出一份教程。。
(2K3/IIS的VPS是一朋友的,我想给他弄,如果IIS弄好了,我自己的是CentOS的VPS,再想办法。。当然,我技术不行,官方又都是E文,到现在也没有一个完整的思路(比如是先到startssl申请,还是先在IIS上新建证书。。这些我到现在都还没搞清楚。。)但是我目前已经通过StartSSL的域名验证了。。)
以下是几个StartSSL的教程,如果博主感兴趣的话可以参考一下:
2K3/IIS: http://www.pczpg.com/a/2010/0422/6161_3.html
Linux :http://www.baidu.com/s?bs=nginix+start&f=8&wd=nginx+startssl
朱俊
恩,签发这个证书也蛮好的,大部分浏览器都不会报警
Neeke
朱俊
嘿嘿,自己用这个足够了,另外可以申请一些免费的证书,比如StartSSL