IPアドレス(例:https://203.0.113.50)のSSL証明書を取得できますか? はい — ただしLet’s Encryptは対応しておらず、より良い代替手段があります。
IPアドレスの証明書を発行できる認証局
| 認証局 | IPアドレス証明書 | コスト |
|---|---|---|
| Let’s Encrypt | ❌ 非対応 | — |
| ZeroSSL | ✅ ACME経由(パブリックIP) | 無料(制限あり) |
| Google Trust Services | ✅ ACME経由 | 無料 |
| DigiCert | ✅(OV/EVのみ) | 有料 |
| Sectigo | ✅ | 有料 |
| 自己署名 | ✅ | 無料(ブラウザ警告) |
Let’s EncryptのACME実装はIPアドレスを検証しません — ドメイン名のみを検証します。これはGetHTTPSがIPアドレスの証明書を発行できないことを意味します。
ドメインがほぼ常に良い理由
| IPアドレス証明書 | ドメイン証明書 | |
|---|---|---|
| Let’s Encryptでサポート | ❌ | ✅ |
| 無料オプション | 限定的 | 無制限(Let’s Encrypt) |
| サーバー変更可能 | ❌ そのIPに紐づく | ✅ DNSを更新 |
| 人間が読める | ❌ https://203.0.113.50 | ✅ https://example.com |
| CDN/ロードバランサー | ❌ IPが変わると壊れる | ✅ DNSベースのルーティング |
| SEO | ❌ キーワード価値なし | ✅ ブランド化可能 |
ほぼすべてのケースで、ドメイン登録($10-15/年)とLet’s Encrypt(無料)の方が、IPアドレス証明書を取得するより安くて柔軟です。
IPアドレス証明書が意味を持つ場合
- 内部インフラ — DNSが設定されていないプライベートネットワーク上の監視ダッシュボード、管理パネル、API
- IoT/組み込みデバイス — 固定IPに接続し、DNSを解決できないデバイス
- 開発/テスト — DNS設定なしでテストサーバーにクイックHTTPS
- レガシーシステム — IPに接続するようハードコードされたアプリケーション
IPアドレス証明書の代替手段
オプション1: ドメインを使用する(推奨)
ドメインまたはサブドメインを登録し、IPを指すようにし、無料のLet’s Encrypt証明書を取得します。
# 例: サブドメインをIPに向ける
server.example.com → A record → 203.0.113.50
# その後、server.example.comの証明書を取得
コスト:$0(既にドメインを持っている場合)〜$10-15/年(新しいドメイン)。
オプション2: 自己署名証明書
ブラウザ警告が許容される内部使用向け:
openssl req -x509 -newkey ec -pkeyopt ec_paramgen_curve:P-256 \
-keyout key.pem -out cert.pem -days 365 -nodes \
-subj "/CN=203.0.113.50" \
-addext "subjectAltName=IP:203.0.113.50"
SANのIP:プレフィックスに注意 — DNS:ではありません。
オプション3: nip.ioまたはsslip.io(巧妙なDNSトリック)
これらの無料サービスは、ホスト名に埋め込まれたIPに解決されるDNSレコードを提供します:
203.0.113.50.nip.io → resolves to 203.0.113.50
これにより、GetHTTPSでDNS-01チャレンジを使用して203.0.113.50.nip.ioのLet’s Encrypt証明書を取得できます。ドメインは見栄えが悪いですが機能します。
オプション4: Cloudflare Tunnel
Cloudflareのトンネルを通じて、IPベースのサービスを実際のドメインと自動SSLで公開 — パブリックIP不要。
よくある質問
Let’s EncryptがIPアドレスをサポートしない理由
Let’s EncryptはDNSまたはHTTPチャレンジでドメイン所有権を検証します。IPアドレスには同じ意味でのDNS所有権がなく、検証モデルがクリーンに適用されません。他の認証局(ZeroSSL、Google Trust Services)はACME実装にIPサポートを追加しています。
ワイルドカード証明書をIPアドレスに使えますか?
いいえ。ワイルドカードはDNS名(*.example.com)にのみ適用されます。IPアドレスにはサブドメインがありません。
プライベート/内部IP(192.168.x.x、10.x.x.x)はどうですか?
公的な認証局はプライベートIPアドレスの証明書を発行しません — グローバルに一意ではないためです。内部ネットワークには自己署名証明書またはプライベートCAを使用してください。
パブリックIPの無料証明書を取得できますか?
ZeroSSLとGoogle Trust ServicesがACME経由でIPアドレス証明書をサポートしています。ただし、無料枠には制限がある場合があります。Let’s Encryptを使ったドメインの方がより信頼性が高く、本当に無制限です。