Nginx添加ssl之添加本地证书

说明:
只是为了本地测试nginx添加ssl功能,因此就本地生成了密钥,证书,但这样证书是不被信任的。
具体效果见下图:

 

实现:
1.使用如下命令并根据提示输入信息,生成证书

openssl genrsa -des3 -out localhost.key 1024//创建自身密钥
openssl req -new-key localhost.key -out localhost.csr  //通过密钥生成相应CSR申请文件
openssl rsa -in localhost.key -out localhost_nopass.key //生成浏览器浏览网页时不需要输入密码的密钥
openssl x509 -req -days 365-in localhost.csr -signkey localhost.key -out localhost.crt
//生成证书

2.在nginx的server配置中添加如下配置:

server {
    listen 443;
    server_name www.nobody.com nobody.com;
    ssl on;
    ssl_certificate /usr/local/nginx/conf/localhost.crt;
    ssl_certificate_key /usr/local/nginx/conf/localhost_nopass.key;}
 注:如果HTTP和HTTPS虚拟主机的功能是一致的,可以配置一个虚拟主机,既处理HTTP请求,又处理HTTPS请求。 配置的方法是删除ssl on的指令,并在*:443端口添加参数ssl:...}
server {
    listen              80;
    listen              443 ssl;
    server_name www.nobody.com nobody.com;
    ssl_certificate     /usr/local/nginx/conf/localhost.crt;
    ssl_certificate_key /usr/local/nginx/conf/localhost_nopass.key;...}
 

在0.8.21版本以前,只有添加了default参数的监听端口才能添加ssl参数:listen 443 default ssl;

现在生成的证书是不受信任的,如果需要受信任的证书,需要证书颁发机构颁发(需要用钱解决)。
免费的证书颁发机构:http://www.startssl.com/ 较低版本的ie浏览器可能不支持。

猜你喜欢

转载自lwg2001s.iteye.com/blog/2180410