nginx使用SSL指南

原文:http://www.5ilinux.com/2014/01/nginx_ssl_howto.html

在我们实际运维过程中,web服务难免会用ssl证书,比如注册链接等,一般我们都会有下面2种情况进行设置
这里我们以nginx为例,讲讲2种SSL证书的操作,apache其实也类似,可做参考。

第一种方式:自签名的SSL证书(免费,但不被认证)

首先必须你要安装好openssl,我想一般都会装好,如果没装,那就先装上,不管是yum还是apt

mkdir /etc/nginx/ssl/

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/nginx.pem -keyout /etc/nginx/ssl/nginx.key
 
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:beijing
Locality Name (eg, city) [Default City]:beijing
Organization Name (eg, company) [Default Company Ltd]:5ilinux.com
Organizational Unit Name (eg, section) []:it
Common Name (eg, your name or your server's hostname) []:5ilinux.com
Email Address []:

chmod 400 nginx.pem
chmod 400 nginx.key

普通虚拟主机的设置

server {
 
      # [...]
 
      listen 443;
      ssl on;
      ssl_certificate      /etc/nginx/ssl/nginx.pem;
      ssl_certificate_key  /etc/nginx/ssl/nginx.key;
 
      # [...]
}

多个虚拟主机公用同一个ssl证书

http {
    ssl_certificate	   /etc/nginx/ssl/nginx.pem;
    ssl_certificate_key	   /etc/nginx/ssl/nginx.key;
 
    server {
       listen       443;
       server_name      www.5ilinux.com;
       ssl on;
 
       location / {
             root /var/www/5ilinux/www;
       }
    }
    server {
       listen       443;
       server_name      blog.5ilinux.com;
       ssl on;
 
       location / {
             root /var/www/5ilinux/blog;
       }
 
    # [...]
    }

强制所有访问都转到https访问

只要在80端口的虚拟主机里设置

rewrite ^ https://$server_name$request_uri permanent;

加了SSL后,关于nginx的参数优化,以下参数可以根据需要加载在http配置或者server配置里

ssl_session_cache shared:SSL:10m; #默认是none
ssl_session_timeout 10m; #默认是5m

下面是一些加密的方式支持等,根据自己需要来设置

ssl_ciphers HIGH:!aNULL:!MD5 #默认一样
ssl_prefer_server_ciphers on; #默认是off
ssl_protocols SSLv2 SSLv3 TLSv1; #默认是SSLv3 TLSv1 TLSv1.1 TLSv1.2;

配置完这些,基本上我们都能访问https的地址,只是可能会显示证书不受信任,当然了,第一种方式是自签名证书,所以我们有第2种常见可能

第二种:向商业机构申请SSL证书(收费,相对有安全保证)

首先也是用openssl生产一个key和csr文件

openssl req -new -days 365 -nodes -keyout 5ilinux.com.key -out 5ilinux.com.csr

生成的过程跟自签名过程差不多

把获得的csr文件提交给权威SSL认证机构,他们会发给你一个5ilinux.crt的证书

剩下的基本跟上面一样,只不过证书名字换个就行

ssl_certificate /etc/nginx/ssl/5ilinux.com.crt;
ssl_certificate_key /etc/nginx/ssl/5ilinux.com.key;

参考文档:http://nginx.org/en/docs/http/ngx_http_ssl_module.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值