GNU/Linux >> Linux の 問題 >  >> Linux

RT:Request Tracker –エラー:rt-mailgate –未定義のサーバーエラー–500証明書を接続または検証できません[解決済み]

オフィスにリクエストトラッカー(RT)をインストールしましたが、今日まで正常に機能していました。突然、メールによるチケットリクエストの受け付けが停止し、バウンスメールやユーザー/リクエスターに表示されるエラーは発生しませんでした。問題をデバッグした方法は次のとおりです。最初に行ったのは、メールリクエストが(メールサーバーから)RTマシンに到達していて、実際に正常に機能しているかどうかを確認することでした。しかし、その後、チケットは作成されなかっただけで、幸いなことに、 / var / log / maillog 以下のエラーメッセージが表示され、 rt-mailgateでチケットを作成しているときにキャプチャされました perlスクリプト。

Jun 10 17:03:50 support sendmail[1953]: t5ABXovT001952: to="|/opt/rt3/bin/rt-mailgate --queue default --action correspond --url http://rt.techglimpse.com/", ctladdr=<[email protected]> (8/0), delay=00:00:00, xdelay=00:00:00, mailer=prog, pri=34931, dsn=4.0.0, stat=Deferred: prog mailer (/usr/sbin/smrsh) exited with EX_TEMPFAIL

詳細なエラーを取得するために、私は– debug を使用しました rt-mailgateのオプション 以下に示すスクリプト:

/opt/rt3/bin/rt-mailgate --queue default --action correspond --url https://rt.techglimpse.com:443/ --debug < test

注:「test」は、サンプルのテキスト/メッセージを含むサンプルファイルです。

得られたエラーは次のとおりです:

500 Can't connect to rt.techglimpse.com:443
(certificate verify failed)

/opt/rt3/bin/rt-mailgate: undefined server error

このエラーメッセージでは、RTインスタンスに使用されているSSL証明書がこのエラーをトリガーしたと推測されます。 SSL証明書に関して確認することが2つあります。

1。 RTインスタンスで使用されているSSL証明書を確認します:

openssl verify /etc/httpd/conf/ssl.crt/rt.techglimpse.com.crt

上記のコマンドはステータス「OK」を返しました。驚いたことに、RTがウェブブラウザを介してhttps経由でアクセスされた場合、問題はありませんでした(ただし、コマンドラインでは機能しませんでした)。いくつかのperlモジュールの機能が壊れていないことを明確にするために、cpanを介して以下のperlモジュールを更新しました:

LWP::UserAgent, Crypt::SSLeay, LWP::Protocol::https HTTP::Cookies

しかし、それでも元の問題はまだ解決されていません。 1時間グーグルした後、rt-mailgateのパッチを確認し、環境変数 PERL_LWP_SSL_VERIFY_HOSTNAMES を設定して、POSIXでのSSL検証を修正します。 または、以下に示すオプションを使用して、ホスト名とSSLの検証を無視するようにユーザーエージェントに指示します。これを行うには、 / opt / rt3 / bin / rt-mailgateで以下の行を検索します。

my $ua = new LWP::UserAgent;

以下の行を追加して、ユーザーエージェントにルートCAパスについて通知します。

$ua->ssl_opts( verify_hostnames => 0 );

警告: 上記の手順により脆弱性が発生するため、ここで注意してください。証明書の使用は無視されているため、機能しますが、サーバーはMITM攻撃に対して脆弱である可能性があります。

2。 RTインスタンスが使用しているSSL証明書の信頼を確認しますか?

私の場合、自己署名証明書を使用しましたが、(ROOT CA証明書を作成していないか、追跡できない可能性があります)、信頼されていませんでした。それでも自己署名証明書を使用する場合は、独自のSSL認証局の作成(および自己署名証明書のダンプ)に従って、ルートCAと自己署名証明書を作成できます。ルートCAを場所/etc / pki / CA / certsにコピーします 。この場所が存在しない場合は、 ca-certificates-2010.63-3.el6_1.5.noarchをインストールする必要があります。 RPMパッケージ。

最後に、 rt-mailgateを実行できました。 正常に。ルートCAが標準の場所にない場合は、 rt-mailgateで指定できます。 脳のブログ投稿で示唆されているように。 / opt / rt3 / bin / rt-mailgateで以下の行を見つけます

my $ua = new LWP::UserAgent;

以下の行を追加して、ユーザーエージェントにルートCAパスについて通知します。

$ua->ssl_opts( SSL_ca_file => '/path/to/root.crt' );

注: 上記の行でルートCAの正しいパスを設定することを忘れないでください。

それでおしまい!私の経験が誰かに役立つことを願っています。


Linux
  1. 未定義の関数simplexml_load_file()の呼び出し–PHPエラー[解決済み]

  2. 未定義の関数apc_fetch()の呼び出しを修正する方法–PHPの致命的なエラー[解決済み]

  3. 500内部サーバーエラーとは何ですか

  1. Laravel プロジェクトをサーバーにアップロードするときのエラー 500

  2. 404 がスローされたとしても、ページが存在するかどうかわかりますか?

  3. 自宅から外部 RDS TSG サーバーに接続できない

  1. PHP-intlエラー:ICUプレフィックスを検出できないか、失敗しませんでした。 ICUインストールプレフィックスを確認してください[解決済み]

  2. Request Trackerバージョン3エラーのトラブルシューティング–参照されていないスカラー、Perlインタープリターを解放しようとしました

  3. Ssh証明書が指定されたSshCa秘密鍵によって署名されたことを確認する方法は?