2013-12-13 16:13:01
来 源
kejihao
Nginx
本文介绍Nginx服务器如何配置SSL证书,希望对于初学Nginx服务器相关的朋友有帮助,更多Nginx安装、配置、报错处理等资源请本站内搜索。。

Nginx (读音”engine x”) 是一个高性能的HTTP和反向代理服务器,比Apache占用更少的内存,同时也像Apache一样支持HTTPS方式访问(SSL加密)。本教程基于 Ubuntu Lucid (10.04),简单阐述如何在Nginx上部署HTTPS网站。

1、名词释义

CA(Certificate Authority):数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。

SSL(Secure Sockets Layer):安全套接层,它指定了在应用程序协议(如HTTP、Telnet、FTP)和TCP/IP之间提供数据安全性分层的机制,它是在传输通信协议(TCP/IP)上实现的一种安全协议,采用公开密钥技术,它为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。

证书链(certificate chain):包含信任锚(CA 证书)和已签名证书。Web浏览器已预先配置了一组浏览器自动信任的根CA证书。来自其他证书授权机构的所有证书都必须附带证书链,以检验这些证书的有效性。证书链是由一系列CA证书发出的证书序列,最终以根CA证书结束。

2、为Nginx准备SSL证书

SSL证书可以由CA提供,也可使用本机生成一个证书(自签名证书),但是自签名证书不会被浏览器认可,浏览网页时浏览器有警告信息。假设已经从CA购买了一个证书,将会获得以下证书文件:

SSL证书文件(.crt文件)、SSL证书.key文件、SSL证书链文件(.pem文件,CA公布在其网站上)

CA颁发的.crt证书文件内容大致如下:

—–BEGIN CERTIFICATE—–

……

—–END CERTIFICATE—–

将CA提供的.pem文件内容需要粘贴到.crt文件后面,供Nginx使用,和Apache的配置略有区别。

CA颁发的.key证书文件内容大致如下:

—–BEGIN RSA PRIVATE KEY—–

Proc-Type: 4,ENCRYPTED

DEK-Info: AES-256-CBC,……

……

—–END RSA PRIVATE KEY—–

3、Nginx安装与SSL部署

sudo apt-get install nginx

编辑配置文件

sudo vim /etc/nginx/sites-available/default

配置示例

server {

listen 443; //HTTPS协议使用443端口

#listen 80;

server_name sslwebsite.sudu.cn;

ssl on;

ssl_certificate ssl/cp.crt; //crt文件存放路径

ssl_certificate_key ssl/cp.key; //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;

server_name localhost;

access_log /var/log/nginx/localhost.access.log;

## Default location

location / {

root /var/www;

index index.php;

}

}

4、重启Nginx,完成

sudo service nginx restart

重启过程中一般会询问PEM pass phrase,这是因为RSA私钥文件有密语保护。CA在颁发证书的时候设定了一个密语保护,在知道密语的情况下,可以用OpenSSL去除保护,重启Nginx的时候就不会提示输入密语。

声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。