Commit 1d737d6374832869c13342080f49c826d68356eb

Authored by nollieheel
Committed by Earth Ugat
1 parent 32e1d36b

Bump to v0.3.5

  1 +# 0.3.5
  2 +
  3 +Include the openssl cookbook. Generating a dhparam file for
  4 +each nginx virtual host is superfluous.
  5 +
1 6 # 0.3.4
2 7
3 8 Fix a typo in an nginx template
... ...
... ... @@ -24,6 +24,12 @@ Ubuntu 14.04
24 24 <td><tt>''</tt></td>
25 25 </tr>
26 26 <tr>
  27 + <td><tt>['cfe-nginx-php-fpm']['openssl']['dh_modulus']</tt></td>
  28 + <td>Integer</td>
  29 + <td>Used if at least one virtual site uses TLS.</td>
  30 + <td><tt>4096</tt></td>
  31 + </tr>
  32 + <tr>
27 33 <td><tt>['cfe-nginx-php-fpm']['nginx']['sites']</tt></td>
28 34 <td>Array/Hash</td>
29 35 <td>Values that define the virtual servers to be hosted by Nginx.</td>
... ...
... ... @@ -27,6 +27,8 @@ default['cfe-nginx-php-fpm']['postfix']['email_domain'] = 'example.com'
27 27 # the default one ('www'), which is automatically installed by php-fpm
28 28 default['cfe-nginx-php-fpm']['php-fpm']['delete_pool_www'] = true
29 29
  30 +default['cfe-nginx-php-fpm']['openssl']['dh_modulus'] = 4096
  31 +
30 32 # Uncomment to set custom locations
31 33 #default['cfe-nginx-php-fpm']['nginx']['inc_dir'] =
32 34 # "#{node['nginx']['dir']}/sites-available/include"
... ... @@ -92,7 +94,6 @@ default['cfe-nginx-php-fpm']['nginx']['sites'] = [
92 94 #
93 95 # :self_signed => false,
94 96 # :cipher_suite => 'medium', # or 'modern'
95   - # :dh_modulus => 4096,
96 97 # :hsts_max_age => '15758000',
97 98 # :hsts_subdomains => true
98 99 #},
... ...
... ... @@ -4,9 +4,10 @@ maintainer_email 'sysadmin@chromedia.com'
4 4 license 'Apache License'
5 5 description 'Simplifies setup of Nginx+PHP-FPM in Chromedia.'
6 6 long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
7   -version '0.3.4'
  7 +version '0.3.5'
8 8
9 9 {
  10 + 'openssl' => '4.4.0',
10 11 'php-fpm' => '0.7.5',
11 12 'mariadb' => '0.3.1',
12 13 'postfix' => '3.6.2',
... ...
... ... @@ -18,9 +18,13 @@
18 18 # limitations under the License.
19 19 #
20 20
  21 +include_recipe 'openssl::upgrade'
  22 +
  23 +cb = 'cfe-nginx-php-fpm'
  24 +
21 25 # Create necessary directories
22   -inc_dir = node['cfe-nginx-php-fpm']['nginx']['inc_dir']
23   -priv_dir = node['cfe-nginx-php-fpm']['nginx']['priv_dir']
  26 +inc_dir = node[cb]['nginx']['inc_dir']
  27 +priv_dir = node[cb]['nginx']['priv_dir']
24 28
25 29 [ inc_dir, priv_dir ].each do |ndir|
26 30 directory ndir do
... ... @@ -29,9 +33,18 @@ priv_dir = node['cfe-nginx-php-fpm']['nginx']['priv_dir']
29 33 end
30 34
31 35 # Generate config files for each virtual server.
32   -catch_all_def_false = node['cfe-nginx-php-fpm']['nginx']['sites'].length > 1
  36 +catch_all_def_false = node[cb]['nginx']['sites'].length > 1
  37 +
  38 +# If at least one site is using TLS, configure a high modulus DH param
  39 +path_dhparam = "#{priv_dir}/dhparam.pem"
  40 +if node[cb]['nginx']['sites'].any? { |site| site[:ssl] }
  41 + openssl_dhparam path_dhparam do
  42 + key_length node[cb]['openssl']['dh_modulus']
  43 + generator 2
  44 + end
  45 +end
33 46
34   -node['cfe-nginx-php-fpm']['nginx']['sites'].each do |site|
  47 +node[cb]['nginx']['sites'].each do |site|
35 48
36 49 if site.is_a?(Array)
37 50 site_sname = site[0]
... ... @@ -41,12 +54,12 @@ node['cfe-nginx-php-fpm']['nginx']['sites'].each do |site|
41 54 end
42 55
43 56 # Assign default values to attributes
44   - site_index = site[:index] || nil
  57 + site_index = site[:index]
45 58 site_aliases = site[:aliases] || []
46   - site_doc_root = site[:doc_root] || nil
47   - site_alo = site[:access_log_options] || nil
48   - site_ssl = site[:ssl] || nil
49   - site_auth = site[:auth] || nil
  59 + site_doc_root = site[:doc_root]
  60 + site_alo = site[:access_log_options]
  61 + site_ssl = site[:ssl]
  62 + site_auth = site[:auth]
50 63 site_ins = site[:init_statements] || []
51 64 site_ss1 = site[:server_statements_1] || []
52 65 site_ss2 = site[:server_statements_2] || []
... ... @@ -66,7 +79,6 @@ node['cfe-nginx-php-fpm']['nginx']['sites'].each do |site|
66 79
67 80 path_crt = ''
68 81 path_key = ''
69   - path_dhparam = ''
70 82 path_pass = ''
71 83
72 84 # If TLS/SSL is enabled, configure it:
... ... @@ -105,13 +117,6 @@ node['cfe-nginx-php-fpm']['nginx']['sites'].each do |site|
105 117 action :create_if_missing
106 118 end
107 119 end
108   -
109   - # Configure a high modulus DH param
110   - path_dhparam = "#{priv_dir}/#{site_sname}.dhparam"
111   - dh_modulus = site_ssl[:dh_modulus] || 4096
112   - execute "openssl dhparam -out #{path_dhparam} #{dh_modulus}" do
113   - not_if { ::File.exist?(path_dhparam) }
114   - end
115 120 end
116 121
117 122 # If basic auth is enabled, create htpasswd file
... ...