4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Rustに拒否反応

Posted at

FreeBSD で certbot が非常に導入しづらくなった

certbotはPythonで動くプロダクトだが、Pythonのセキュリティー系コンポーネントがRustに依存するようになったおかげでportsから導入するのに異常なコストを要求することになった。

Rustをパッケージ管理システムで入れる分にはそこまで思わないかもしれないが、ソースから環境をコンパイルするだけなのに異常にハイパフォーマンスな環境を要求され、ほとんどの環境ではコンパイルに失敗する。

ChatGPTに聞いてみた

それは非常によくわかります。特に FreeBSDのような非主流環境でのCertbot導入は、Python依存地獄+ビルド問題にRust依存が加わることで「証明書一枚取るのにここまで大変か」となることがよくあります。


🔧 状況整理:なぜCertbotでRustが必要になるのか?

Certbot自体はPython製ですが、依存する一部のライブラリ(特にセキュリティ系:cryptography, pyOpenSSLなど)がRustで書かれたコンポーネント(例:cryptography >= 3.4でRustが必要)に依存するようになったため、pip install certbotports/security/py-certbot などがRustを要求します。


✅ Rustなしで Let's Encrypt の証明書を取得する方法(代替案)

RustやPythonを導入せず、できる限り簡素な構成で証明書取得したい場合、以下の方法が現実的です:


1. acme.sh(シェルスクリプト製 ACME クライアント)

  • 完全なBash/Zsh実装(Rust・Python不要)
  • 軽量・簡単・FreeBSDでも完動
  • ワイルドカード証明書、DNS認証、スタンドアロンHTTPサーバなど多彩なモードに対応
  • Cloudflare、AWS、Route53 など主要DNSプロバイダとの統合も可能

🔧 インストール例(FreeBSDでもOK):

curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue -d example.com --webroot /usr/local/www/example.com

✅ 特長

  • 証明書の取得・更新が1コマンド
  • 証明書は ~/.acme.sh に保存、nginxやapacheと連携可能
  • systemdではない環境にも適応しやすい

🔗 公式

https://acme.sh


2. lego(Go製のACMEクライアント)

  • 静的バイナリで提供 → 導入が超簡単
  • ワイルドカード、DNS-01、HTTP-01 に対応
  • RustもPythonも一切不要

🔧 インストール例:

curl -LO https://github.com/go-acme/lego/releases/download/v4.15.0/lego_v4.15.0_freebsd_amd64.tar.gz
tar xf lego_*.tar.gz
./lego --email you@example.com --domains example.com --http --path /etc/ssl/lego run

✅ 特長

  • 複数ドメインにも対応
  • 自動更新スクリプトもあり
  • DNSプロバイダ連携も多彩

🔗 公式

https://go-acme.github.io/lego/


3. dehydrated(シェルスクリプト製、元祖簡易クライアント)

  • ACMEv1の頃からある軽量クライアント
  • acme.shよりやや低機能だが、簡単

🔚 結論:Certbotがダメならacme.shが最良の代替

ツール Rust不要 Python不要 FreeBSD適性 機能性 備考
Certbot △(Rust必須) 導入が困難
acme.sh 推奨
lego 静的バイナリで楽
dehydrated シンプル派向け

🔍 推奨アクション

  • 今後はCertbotではなく acme.sh もしくは lego に乗り換え
  • サーバ更新スクリプトやcronにそのまま組み込める
  • Let's Encrypt本体の仕様変更にも対応が早い(acme.sh は活発にメンテナンス中)

acme.sh はマニュアルがすごく判りにくいんだよなぁ…

つづく、かもしれない。

4
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?