あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

MailmanのHTTPS対応

list.ospn.jpのMailmanのWebサーバーをHTTPS対応したら、諸々操作できなくなったと言われたので、以下を参考にMailman側にも対応を入れました。

www.hsbt.org

Mailmanで使ってるドメインが1つなら変数にハードコーディングでも良かったのですが、弊鯖の場合3つくらいドメインが設定されているので、文字列置き換えを使うことにしました。あと変更前後の出力をつけときました。

# enable_https.py
# Based: https://www.hsbt.org/diary/20170713.html

def enable_https(mlist):
    mlist.Lock()
    print("Before URL: " + mlist.web_page_url)
    mlist.web_page_url = mlist.web_page_url.replace("http:","https:")
    print("After URL : " + mlist.web_page_url)
    mlist.Save()

CentOS6のRPMでインストールしたmailmanでは、/usr/lib/mailman/bin/enable_https.pyとして配置した上で実行する必要がありそうでした。

(hogeに対して実行して確認)
# /usr/lib/mailman/bin/withlist -r enable_https hoge
Importing enable_https...
Running enable_https.enable_https()...
Loading list hoge (unlocked)
Before URL: http://list.ospn.jp/mailman/
After URL : https://list.ospn.jp/mailman/
Unlocking (but not saving) list: hoge
Finalizing

(全部に適用)
# /usr/lib/mailman/bin/withlist -r enable_https -a