创建SSL .crt& .key文件使用Nginx Cookbook并将其放在Chef-Client中

时间:2014-12-17 13:58:27

标签: nginx chef cookbook

在nginx cookbook上创建ssl证书和密钥,并帮我将其放在下面提到的位置:

Nginx中的属性attributes/default.rb

default['nginx']['ssl_certificate'] = '/etc/nginx/ssl/nginx.crt' default['nginx']['ssl_certificate_key']='/etc/nginx/ssl/nginx.key'

在Nginx中配置templates/default/default.conf.erb

`server {      听443;

 server_name  <%= node['nginx']['server_name'] %>;

 ssl <%= node['nginx']['ssl'] %>;
 ssl_certificate <%= node['nginx']['ssl_certificate'] %>;
 ssl_certificate_key <%= node['nginx']['ssl_certificate_key'] %>;

 #charset koi8-r;
 access_log  <%= node['nginx']['access_log'] %>;

 #error_page  404              /404.html;

 # redirect server error pages to the static page /50x.html

 error_page   500 502 503 504  /50x.html;
 location = /50x.html {
    root   <%= node['nginx']['root'] %>;
 }

 # Default application configuration

 location / {
    proxy_redirect    off;
    proxy_pass http://backend/lgweb1/;
    proxy_set_header Host               $host;
    proxy_set_header X-Real-IP          $remote_addr;
    proxy_set_header X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header   X-NginX-Proxy  true;
    proxy_cookie_domain localhost <%= node['nginx']['server_name'] %>;
    proxy_http_version 1.1;
 }
 location /media {
    if ($request_method != GET) {
        return 403;
    }
    set $args $args&user.name=ec2-user&op=OPEN;
    proxy_pass <server name>;

    }
} 
# Redirect all port 80 access to ssl.
server {
  listen 80;
  return 301 https://$host$request_uri;
}`

现在我正在寻找一个简单的代码,它可以在各自的位置安装.crt和.key文件。

P.S。厨师市场上提供的食谱有太多的配置,我不需要也不理解它们,因为我是CHEF和Coding本身的新手。

注意:我正在使用AMI系统

1 个答案:

答案 0 :(得分:3)

最好的选择是超市上的certificate食谱。它将期望带有证书和密钥的数据库,并将该证书和密钥放在指定的位置,同时还为其设置正确的权限。食谱上的文档非常好,所以即使是新手也应该​​能够很好地利用它。