创建SSL.crt&。使用Nginx Cookbook并将其放入Chef客户端的关键文件

创建SSL.crt&。使用Nginx Cookbook并将其放入Chef客户端的关键文件,nginx,chef-infra,cookbook,Nginx,Chef Infra,Cookbook,在nginx cookbook上创建ssl证书和密钥,并帮助我将其放置在以下提到的位置: Nginx中的属性attributes/default.rb default['nginx']['ssl_certificate']='/etc/nginx/ssl/nginx.crt' 默认值['nginx']['ssl\u证书\u密钥]='/etc/nginx/ssl/nginx.key' Nginxtemplates/default/default.conf.erb中的配置 `服务器{ 听443 s

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

Nginx中的属性
attributes/default.rb

default['nginx']['ssl_certificate']='/etc/nginx/ssl/nginx.crt'
默认值['nginx']['ssl\u证书\u密钥]='/etc/nginx/ssl/nginx.key'

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

`服务器{ 听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;
}`
服务器名称;
ssl;
ssl_证书;
ssl_证书_密钥;
#charset-koi8-r;
访问日志;
#错误\u第404/404.html页;
#将服务器错误页面重定向到静态页面/50x.html
错误\u第500页502 503 504/50x.html;
location=/50x.html{
根;
}
#默认应用程序配置
地点/{
代理_重定向关闭;
代理通行证http://backend/lgweb1/;
代理设置头主机$Host;
代理集头X-Real-IP$remote\u addr;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
proxy\u set\u头X-NginX-proxy true;
代理\u cookie\u域本地主机;
proxy_http_版本1.1;
}
地点/媒体{
if($request\u method!=GET){
返回403;
}
设置$args$args&user.name=ec2 user&op=OPEN;
代用通行证;
}
} 
#将所有端口80访问重定向到ssl。
服务器{
听80;
返回301 https://$host$request\u uri;
}`
现在我正在寻找一个简单的代码,它将在各自的位置安装.crt和.key文件

另外,厨师市场上提供的烹饪书有太多的配置,我不需要,也不了解它们,因为我是厨师和编码本身的新手


注意:我正在使用AMI系统

你最好的选择是超市的
证书
食谱。它需要一个包含证书和密钥的数据包,并将该证书和密钥放置在指定位置,同时对其设置正确的权限。食谱上的文档非常好,所以即使是新手也应该能够很好地利用它。

当然,我会尝试一下。:)我手动创建了nginx.crt和nginx.key in Files目录,并使用recipes/default.rb中的Cookbook_文件将它们放置在各自的位置。它工作了请意识到这将在您的烹饪书中以纯文本的形式公开您的私钥(在源代码管理和其他任何复制它的地方,就像在您的节点上一样)。对于开发来说可能很好,但不是一个非常安全的生产计划。数据包是最安全的生产方式吗?我想说,加密数据包是当今最常见的方法,但实际上没有“好”的方法,只有很多“好”的方法。Coderanger有一篇很棒的博客文章。对于厨师来说,他确实是最好的厨师之一,甚至他似乎对现有的解决方案也不满意。