KITA Eng.

北海道でサーバー技術者として歩み出したひとが綴るblog。

SoftErther VPN Serverで使うSSL証明書をLet's Encryptで取得して設定するとこまで自動化してみた。

Let's Encryptの活用方法シリーズ!?第二弾です。今回は、SoftErther VPN Serverの証明書をLet's Encryptで取得して設定するところまでを自動でできるようにしてみました。

↓第一弾↓ kitaeng.hateblo.jp

内容的には、第一弾の自動で更新のスクリプトSoftErther VPNのコマンドラインツールでの証明書設定変更を追加しただけです。

softerthervpn_letsencrypt_cert_autoupdate.sh

動作検証環境
レポートメールのサンプル
Subject: [Soft Erther VPN Server Cert Auto Update] Update Report for exsample.com
Date: Sat, 20 Feb 2016 00:00:00 +0900 (JST)
From: root <root@exsample.com>
To: root@exsample.com

# Let's Encrypt Cert autopudate Start: 2016-02-20-Sat-00:00:00
# Update Log START ---------------------------------------------------------#
Updating letsencrypt and virtual environment dependencies......
Requesting root privileges to run with virtualenv: /root/.local/share/letsencrypt/bin/letsencrypt certonly --renew-by-default --webroot -w /var/www/html -d exsample.com
IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at
   /etc/letsencrypt/live/exsample.com/fullchain.pem. Your cert will
   expire on 2016-05-20. To obtain a new version of the certificate in
   the future, simply run Let's Encrypt again.
 - If you like Let's Encrypt, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le


# SoftErther VPN SERVER CERT CHANGE LOG START ------------------------------#
vpncmd コマンド - SoftEther VPN コマンドライン管理ユーティリティ
SoftEther VPN コマンドライン管理ユーティリティ (vpncmd コマンド)
Version 4.19 Build 9599   (Japanese)
Compiled 2015/10/19 20:28:20 by yagi at pc30
Copyright (c) SoftEther VPN Project. All Rights Reserved.

VPN Server "localhost" (ポート 5555) に接続しました。

VPN Server 全体の管理権限があります。

VPN Server>ServerCertSet /LOADCERT:/etc/letsencrypt/live/exsample.com/fullchain.pem /LOADKEY:/etc/letsencrypt/live/exsample.com/privkey.pem
ServerCertSet コマンド - VPN Server の SSL 証明書と秘密鍵の設定
コマンドは正常に終了しました。

#---------------------------- SoftErther VPN SERVER CERT CHANGE LOG END ---#
#------------------------------------------------------------- Update Log END ---#
# Let's Encrypt Cert autopudate End: 2016-02-20-Sat-00:00:00
諸注意

うまく証明書が発行されなかったときや、SoftErther VPN Serverのパスワードが違うなどがあると、SoftErther VPNコマンドラインツールが入力待ちの状態になってしまうので、そこでもれなく止まって進まなくなります……。設定値には十分ご注意を。

あとがき

実験で何回か実行したら、Lets's Encryptのエラーで処理が止まってしまった。リクエストしすぎだよ!って怒られました。ごめんなさい。