Nginx下绑定自己签发的免费SSL数字安全证书【转】
admin | 技术教程, 操作系统, 服务器相关 | 三月 27th, 2011 | No Comments »
由于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协议安全的访问网站,不用担心用户名和密码会在传输过程中被嗅探、盗取。
发表评论
你必须 登录 才能发表评论.