[Rt-commit] rt branch, 4.0/mailgate-ssl-deps, updated. rt-4.0.4-114-g8647578

Alex Vandiver alexmv at bestpractical.com
Tue Dec 13 17:22:01 EST 2011


The branch, 4.0/mailgate-ssl-deps has been updated
       via  8647578775e9620e0d92a21d080bc8da35012b17 (commit)
      from  ea54d2323fa2241131b81d4b7d813de2dd958b4a (commit)

Summary of changes:
 bin/rt-mailgate.in |   16 ++++++++++++++--
 docs/security.pod  |    7 +++++++
 2 files changed, 21 insertions(+), 2 deletions(-)

- Log -----------------------------------------------------------------
commit 8647578775e9620e0d92a21d080bc8da35012b17
Author: Alex Vandiver <alexmv at bestpractical.com>
Date:   Tue Dec 13 17:13:43 2011 -0500

    Use --no-ssl-verify to allow self-signed certs

diff --git a/bin/rt-mailgate.in b/bin/rt-mailgate.in
index ab5e5b6..d460343 100755
--- a/bin/rt-mailgate.in
+++ b/bin/rt-mailgate.in
@@ -57,10 +57,10 @@ use warnings;
 
 use Getopt::Long;
 
-my $opts = {};
+my $opts = { 'ssl-verify' => 1 };
 GetOptions( $opts,   "queue=s", "action=s", "url=s",
             "jar=s", "help",    "debug",    "extension=s",
-            "timeout=i"
+            "timeout=i", "ssl-verify!",
           );
 
 my $gateway = RT::Client::MailGateway->new();
@@ -150,6 +150,7 @@ sub get_useragent {
     my $opts = shift;
     my $ua   = LWP::UserAgent->new();
     $ua->cookie_jar( { file => $opts->{'jar'} } ) if $opts->{'jar'};
+    $ua->ssl_opts( verify_hostname => $opts->{'ssl-verify'} );
     return $ua;
 }
 
@@ -355,6 +356,17 @@ If your RT server uses SSL, you will need to install additional Perl
 libraries. RT will detect and install these dependencies if you pass the
 C<--enable-ssl-mailgate> flag to configure as documented in RT's README.
 
+If you have a self-signed SSL certificate, you may also need to pass
+C<--no-verify-ssl>, below.
+
+=item C<--no-verify-ssl>
+
+This flag tells the mail gateway to trust all SSL certificates,
+regardless of if their hostname matches the certificate, and regardless
+of CA.  This is required if you have a self-signed certificate, or some
+other certificate which is not traceable back to an certificate your
+system ultimitely trusts.
+
 =item C<--extension> OPTIONAL
 
 Some MTAs will route mail sent to user-foo at host or user+foo at host to user at host
diff --git a/docs/security.pod b/docs/security.pod
index 6c0599d..b8650e0 100644
--- a/docs/security.pod
+++ b/docs/security.pod
@@ -23,6 +23,13 @@ can connect.  You can use the C<--enable-ssl-mailgate> command to
 configure to automate the installation of these dependencies.  This is
 documented further in step 10 of the README.
 
+You should use a certificate signed by a reputable authority, or at very
+least a certificate signed by a consistent local CA, which you configure
+your local systems to trust.  If your SSL certificate is self-signed, it
+does little to prevent phishing, as users are trained to accept the
+unauthorized certificate.  See also the C<--no-verify-ssl> flag to
+C<rt-mailgate>.
+
 =item *
 
 Be sure to change the password for the C<root> user of RT.  The default

-----------------------------------------------------------------------


More information about the Rt-commit mailing list