Let's Encryptの代わりにBuypassの証明書を作る
どいつもこいつも馬鹿の一つ覚えみたいにLet's Encrypt、Let's EncryptっておまえらみんなLet's Encrypt村の村人かっつーの
だいたいどの個人サイトもみんな、証明書を表示すると認証局が Let's Encrypt だから、あえて Let's Encrypt 以外の認証局に発行してもらった証明書を使ってたらちょっとイケてる…イケてない…?
Redditでこんなスレッドを発見。
Alternatives to Lets Encrypt? - Reddit
BuyPass is a commercial entity that provides free standard SSL certificates using the ACME protocol, just like LetsEncrypt.
BuyPass という認証局があるらしい。試してみよう。
One bonus is that their certs are good for 180 days, not just 90 days like LE.
Let's Encrypt と違って Buypass の証明書の有効期限は180日間だそうだ。
ただし、セキュリティ的には期限は短い方が有利という指摘が。
It is not a bonus. Validity periods exist for a reason.
When someone gets a valid cert for your domain* or yours is compromised the attacker can use it just for a limited time.
より安全でない証明書を選ぶわけだからイケてるかと言われたらイケてないかもしれない。
サーバー環境
- VPS(conoha使ってます)
- OS: CentOS 7
- Webサーバー: nginx
- 結構昔にLet's Encrypt導入済み(certbotがインストールされている)
認証局 Buypassの認証を受ける
https://www.buypass.com/ssl/products/acme のGET STARTEDの内容に沿って証明書の 取得を試みます。
認証局に登録
# certbot register -m 'YOUR_EMAIL' --agree-tos --server 'https://api.buypass.com/acme/directory'
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Starting new HTTPS connection (1): api.buypass.com
-------------------------------------------------------------------------------
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
-------------------------------------------------------------------------------
(Y)es/(N)o: Y
Starting new HTTPS connection (1): supporters.eff.org
IMPORTANT NOTES:
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
#
「君のメールアドレスにElectronic Frontier Foundation(電子フロンティア財団)からニュースとか配信したいんだけどいいかな?」と尋ねられる。どちらでも好きな方でどうぞ。
証明書を取得
参照している記事ではこの後
# certbot certonly --webroot -w /var/www/example.com/public_html/ -d example.com -d www.example.com --server 'https://api.buypass.com/acme/directory'
を実行するように言ってます。
これは webroot モードといって certbot が読み書きできて、かつ外部からもアクセス可能な静的ディレクトリを用意することで、nginx を停止せずに証明書を取得するモード(のはず)です。
最初は webroot モードを使おうとして、すでにリバースプロキシとして設定済みのnginxの設定ファイルに対して、 location /.well-known
だけは例外的に静的配信するように設定してみたりしたんですが、どうもうまくいかなかったので、webroot は諦めて、同じく nginx を停止せずに証明書を取得できる nginx プラグインを使った方法を試すことにしました。
--nginx
オプションを付けると nginx プラグインが有効な状態で証明書を取得してくれるようです。
# certbot certonly --nginx -d iciclize.net --server 'https://api.buypass.com/acme/directory/'
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Could not choose appropriate plugin: The requested nginx plugin does not appear to be installed
The requested nginx plugin does not appear to be installed
プラグインがないと言われてしまいました。何らかの方法で導入する必要があるみたいです。
Webで検索してみると、CentOSの場合 python2-certbot-nginx
というパッケージが nginx プラグインであることが判明したので、これをインストールします。
# yum install python2-certbot-nginx
yumで特にエラーは出ませんでした。
nginx モジュールを導入したので今度こそ証明書を取得しましょう。
# certbot certonly --nginx -d iciclize.net --server 'https://api.buypass.com/acme/directory/'
http-01 challenge for iciclize.net
という文字列を含む結果が流れて、エラーなく終了しました。証明書がうまく発行されたようです。
ちなみに、-d
オプションを複数指定して、複数のFQDNに対応する証明書を発行しようとしたらうまくいきませんでした。全部の証明書を削除してから、まとめて全部のFQDNを指定した証明書を再び発行してもらえばうまくいくかもしれません。
nginx を再起動
# systemctl restart nginx
ブラウザで当該サイトを表示して確認してみると、証明書の認証局が Buypass AS-xxxxxxx
となっていました。やったぜ。
いやちょっと待てよ
よく考えたら珍しい認証局の証明書を使うのってPKI(Public Key Infrastructure)の本質ガン無視してないか?(懸念)
これつまり証明書を検証できるデバイスがより少なくなるってことですよね?これ普通にアホなことしてない?
陰毛がストレートだったらかっこいいと思って陰毛にパーマかけたら失敗した父親(実話)と発想が同じなんだよなあ…
ほかの記事
- サウンドロップ風おもちゃを自作する記事のパ ート2。ATtiny85用のプログラムを作成する方法と、Raspberry Piを使ってそれを書き込む方法を解説。
- CH341A EEPROM programmer を使ってMacbook AirのUSB経由で 24LC512 に読み書きを行いたい記事です。EEPROMが認識されません。困りましたね。
- 防犯ブザーを改造してサウンドロップ風のオリジナルおもちゃを自作する方法を解説する連載のパート1。今回はRaspberry PiでEEPROMに音声を書き込みます。
- デフォルトゲートウェイには、同一セグメント内の/直接接続された/リンク上の ホストのIPアドレスを設定します。そのIPアドレスからそのホストのMACアドレスを調べられることが条件です。
- ニコニコ動画の埋め込みにscriptを使うとうまくいかない場合は、それが埋め込もうとするiframeを直接埋め込んで使うと いいよという話。
- Raspberry Piで、HTTP上を流れる画像をすり替える悪いルーターを作りました。ルーター自作本をベースに、ルーティングテーブル、NAPTを実装してから、画像のすり替えを実装しました。丸10日かかりました…
- 2019年8月中の4日間でKLab Expert Campに参加して、ネットワークプログラミングとTCP/IPプロトコルスタックの理解を深めました。低レイヤーの人たちとも交流できて刺激になりました。
- UbuntuのインストールUSBを作成し、父のお古のVistaマシンのHDDにUbuntu 16.04をインストール。マシンの起動時にGRUB2の画面で、起動するOSをWindows VistaかUbuntuかで選べるようになった。