Skip to content

Commit 7fb2303

Browse files
committed
Set Passenger SSL protocol to TLS1.2-only, set a restrictive set of SSL ciphers, allow all SSL protocols and ciphers to be updateable by params. TLS1.2 is required for PCI-DSS v3 compliance. PCI will not allow SSL protocols lower than TLSv1.2.
1 parent 78783da commit 7fb2303

File tree

3 files changed

+22
-4
lines changed

3 files changed

+22
-4
lines changed

manifests/master.pp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@
7878
$puppet_docroot = $::puppet::params::puppet_docroot,
7979
$puppet_vardir = $::puppet::params::puppet_vardir,
8080
$puppet_passenger_port = $::puppet::params::puppet_passenger_port,
81+
$puppet_passenger_ssl_protocol = $::puppet::params::puppet_passenger_ssl_protocol
82+
$puppet_passenger_ssl_cipher = $::puppet::params::puppet_passenger_ssl_cipher
8183
$puppet_passenger_tempdir = false,
8284
$puppet_passenger_cfg_addon = '',
8385
$puppet_master_package = $::puppet::params::puppet_master_package,

manifests/params.pp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@
3535
$classfile = '$statedir/classes.txt'
3636
$package_provider = undef # falls back to system default
3737

38+
$puppet_passenger_ssl_protocol = 'TLSv1.2',
39+
#$puppet_passenger_ssl_protocol = 'ALL -SSLv2 -SSLv3',
40+
$puppet_passenger_ssl_cipher = 'AES256+EECDH:AES256+EDH'
41+
#$puppet_passenger_ssl_cipher = 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK',
42+
3843
# Only used when environments == directory
3944
$environmentpath = "${confdir}/environments"
4045

manifests/passenger.pp

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
class puppet::passenger(
3535
$generate_ssl_certs = true,
3636
$puppet_passenger_port,
37+
$puppet_passenger_ssl_protocol,
38+
$puppet_passenger_ssl_cipher,
3739
$puppet_passenger_tempdir = false,
3840
$puppet_docroot,
3941
$apache_serveradmin,
@@ -48,15 +50,24 @@
4850
$passenger_max_requests = 0,
4951
$passenger_stat_throttle_rate = 10,
5052
){
51-
include apache
53+
#include apache
54+
class { 'apache':
55+
server_tokens => 'Prod',
56+
server_signature => 'Off',
57+
trace_enable => 'Off',
58+
} ### class
5259
include puppet::params
5360
class { 'apache::mod::passenger':
5461
passenger_max_pool_size => $passenger_max_pool_size,
5562
passenger_high_performance => $passenger_high_performance,
5663
passenger_max_requests => $passenger_max_requests,
5764
passenger_stat_throttle_rate => $passenger_stat_throttle_rate,
5865
}
59-
include apache::mod::ssl
66+
#include apache::mod::ssl
67+
apache::mod::ssl {
68+
ssl_protocol => [$puppet_passenger_ssl_protocol],
69+
ssl_cipher => $puppet_passenger_ssl_cipher,
70+
} ### Apache::Mod::Ssl defaults
6071

6172
if $::osfamily == 'redhat' {
6273
file { '/var/lib/puppet/reports':
@@ -121,8 +132,8 @@
121132
ssl_chain => "${puppet_ssldir}/ca/ca_crt.pem",
122133
ssl_ca => "${puppet_ssldir}/ca/ca_crt.pem",
123134
ssl_crl => "${puppet_ssldir}/ca/ca_crl.pem",
124-
ssl_protocol => 'ALL -SSLv2 -SSLv3',
125-
ssl_cipher => 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK',
135+
ssl_protocol => $::puppet::params::ssl_protocol,
136+
ssl_cipher => $::puppet::params::ssl_cipher,
126137
ssl_honorcipherorder => 'On',
127138
ssl_verify_client => 'optional',
128139
ssl_verify_depth => '1',

0 commit comments

Comments
 (0)