This commit is contained in:
parent
4ee56900e9
commit
0a09bc07ba
12
nginx.conf
12
nginx.conf
@ -17,11 +17,7 @@ http {
|
|||||||
keepalive_timeout 65;
|
keepalive_timeout 65;
|
||||||
|
|
||||||
server {
|
server {
|
||||||
server_name www.uechi.io;
|
server_name uechi.io;
|
||||||
return 301 $scheme://uechi.io$request_uri;
|
|
||||||
}
|
|
||||||
|
|
||||||
server {
|
|
||||||
listen 80;
|
listen 80;
|
||||||
|
|
||||||
root /var/www/html;
|
root /var/www/html;
|
||||||
@ -48,4 +44,10 @@ http {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
server_name www.uechi.io;
|
||||||
|
return 301 https://uechi.io$request_uri;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -35,6 +35,9 @@ set 1 esp on # flag partition 1 as ESP (EFI System Partition)
|
|||||||
quit
|
quit
|
||||||
```
|
```
|
||||||
|
|
||||||
|
> NOTE: Since the server has 128GB of physical memory, I would rather let OOM Killer do its job than create a swap partition.
|
||||||
|
> Should the need for swap later come up, consider [swapfile](https://wiki.archlinux.org/title/Swap#Swap_file) (no difference in performance)
|
||||||
|
|
||||||
## Install file-system for UEFI/GPT setup
|
## Install file-system for UEFI/GPT setup
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
97
source/_posts/2022/root-ca-in-japan.md
Normal file
97
source/_posts/2022/root-ca-in-japan.md
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
---
|
||||||
|
title: 日本のルート認証局を戴く中間認証局のACME対応状況
|
||||||
|
date: 2022-03-04T15:00:00
|
||||||
|
---
|
||||||
|
|
||||||
|
> 本記事と関係ないが在日ウクライナ大使館に寄付をした。なぜかというと、非常にお世話になっている[FSNotes](https://fsnot.es)の開発者が先月末から続いているウクライナ侵攻によって [OSS 活動を無期限停止せざるを得ない状況](https://twitter.com/FSNotesApp/status/1496865592242016259)に追い込まれており、少しでも支援をしたかったからだ。[在日ウクライナ大使館のサイト](https://japan.mfa.gov.ua/ja)にアクセスできない状態が続いているため、[公式ツイートから寄付先を参照](https://twitter.com/UKRinJPN/status/1497100158693416961)すると良い。
|
||||||
|
|
||||||
|
## 概要
|
||||||
|
|
||||||
|
まず断っておきたいが、ルート認証局によって子孫 SSL 証明書の安全性に問題が生じたことは[WoSign の例](https://wiki.mozilla.org/CA/WoSign_Issues)を除いてほとんどない。わざわざ高額な手数料を支払うより、同じセキュリティ強度の証明書を無料で提供してくれる Let's Encrypt (ISRG)や ZeroSSL (Sectigo) をありがたく使わせていただく、そういう意識で問題ないのである。
|
||||||
|
|
||||||
|
## 国内唯一のルート認証局は SECOM が所有
|
||||||
|
|
||||||
|
- Security Communication RootCA1 ([crt.sh](https://crt.sh/?caid=53))
|
||||||
|
- Security Communication RootCA2 ([crt.sh](https://crt.sh/?caid=1160))
|
||||||
|
|
||||||
|
## 個人が取得可能かつ自動更新に対応しているワイルドカード証明書の年間料金
|
||||||
|
|
||||||
|
金額は 2022 年 3 月現在。
|
||||||
|
|
||||||
|
- FujiSSL (SSLStore) 19,800 円
|
||||||
|
- FujiSSL 20,350 円
|
||||||
|
- JPRS (Gonbei Domain) 16,500 円
|
||||||
|
- JPRS (さくらの SSL) 18,150 円 クレカ不可(請求書払いのみ)
|
||||||
|
- JPRS (ラット) 15,000 円
|
||||||
|
- JPRS (JPDirect) 47,960 円
|
||||||
|
|
||||||
|
FujiSSL、JPRS のルート認証局はどちらも Security Communication RootCA2 だ。
|
||||||
|
|
||||||
|
FujiSSL は独自の自動更新ツールを提供しているが、ホストに PHP や Apache をセットアップしなければならず、HTTP サーバーを内蔵している lego や certbot と比べてやや煩雑な印象は拭えない。独自方式なので、当然 ACME 対応クライアントは使えない。
|
||||||
|
|
||||||
|
## ACME
|
||||||
|
|
||||||
|
[RFC 8555 - Automatic Certificate Management Environment (ACME)](https://tex2e.github.io/rfc-translater/html/rfc8555.html) は自動化されたドメイン認証 SSL 証明書発行手続きを標準化しようとする一連の努力の成果である。
|
||||||
|
|
||||||
|
## JPRS が ACME に対応
|
||||||
|
|
||||||
|
タイミングの良いことに、JPRS が 2022/3/2 から ACME に対応した。
|
||||||
|
|
||||||
|
- [ACME について | JPRS](https://jprs.jp/pubcert/about/ACME/)
|
||||||
|
- [JPRS サーバー証明書発行サービス ACME 対応版ご利用条件 (PDF)](https://jprs.jp/pubcert/info/repository/acme-agreement.pdf)
|
||||||
|
|
||||||
|
[JPRS サーバー証明書認証局証明書ポリシー](https://jprs.jp/pubcert/info/repository/JPRS-CP.pdf)に目を通してどの認証方式に対応しているのか調べてみよう。
|
||||||
|
|
||||||
|
### 3.2.2.4.7 DNS Change
|
||||||
|
|
||||||
|
DNS ゾーンに`_acme-challenge` TXT レコードを置いてドメインの所有権を確認する方式。一番簡単で制約が少ない。
|
||||||
|
|
||||||
|
### 3.2.2.4.18 Agreed-Upon Change to Website v2
|
||||||
|
|
||||||
|
HTTP/HTTPS サーバーを立ち上げて`.well-known/pki-validation`以下に置いたチャレンジトークンを PKI 側が確認する方式。しかし、
|
||||||
|
|
||||||
|
> 2021 年 11 月 18 日以降に発行する証明書について、先頭ラベルが"\*"(ワイルドカード)の FQDN に対してこの方法を適用外とする。
|
||||||
|
|
||||||
|
ワイルドカード証明書の場合この方式が使えない。
|
||||||
|
|
||||||
|
### 3.2.2.4.19 Agreed-Upon Change to Website - ACME
|
||||||
|
|
||||||
|
> 先頭ラベルが"\*"(ワイルドカード)の FQDN に対してこの方法を適用外とする
|
||||||
|
|
||||||
|
同上
|
||||||
|
|
||||||
|
### 4.2.4 CAA レコードの確認
|
||||||
|
|
||||||
|
> 本 CA は、RFC 6844 に従い、申請情報の審査時に CAA レコードを確認する。CAA レコードに記載する本 CA のドメインは「jprs.jp」とする。
|
||||||
|
|
||||||
|
DNS ゾーンに CAA レコードを置いて内容を`jprs.jp`にする必要がある。
|
||||||
|
|
||||||
|
## ACME クライアント
|
||||||
|
|
||||||
|
Go 製の ACME クライアント[lego](https://github.com/go-acme/lego)は DNS-01 認証に対応しているため、JPRS ACME 証明書の発行がスムーズにできる可能性がある。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
CLOUDFLARE_DNS_API_TOKEN=<token> \
|
||||||
|
lego \
|
||||||
|
--server 'https://acme.amecert.jprs.jp/DV/getDirectory' \
|
||||||
|
--eab --kid 'NUtfiBgcWr9oGCWmF8PQd2d499T7WrgqsnkxIOAPASE' --hmac 'Shn8-aYwhUw0esMLnqJL_o9Fg_BszfAgrRJjOtGQGGY' \
|
||||||
|
--accept-tos \
|
||||||
|
--path ./certs \
|
||||||
|
--dns cloudflare \
|
||||||
|
--email 'mail@example.jp' \
|
||||||
|
--domains '*.example.jp' \
|
||||||
|
run
|
||||||
|
```
|
||||||
|
|
||||||
|
[nginx-proxy/acme-companion](https://github.com/nginx-proxy/acme-companion/wiki)は、`ACME_CA_URI`環境変数を指定することで JPRS に対応できるが、HTTP-01 認証に依存しているため ワイルドカード証明書は発行できないだろう。[今後対応する可能性](https://github.com/nginx-proxy/acme-companion/issues/319)はある。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run -d \
|
||||||
|
--name your-proxied-app \
|
||||||
|
-e "VIRTUAL_HOST=subdomain.example.jp" \
|
||||||
|
-e "LETSENCRYPT_HOST=subdomain.example.jp" \
|
||||||
|
-e "ACME_CA_URI=https://acme.amecert.jprs.jp/DV/getDirectory" \
|
||||||
|
nginx
|
||||||
|
```
|
||||||
|
|
||||||
|
JPRS に問い合わせたところ、ACME の利用には JPRS と指定事業者両方の対応が必要になるそうだ。現在どの指定事業者も対応していないため、残念ながらもう少し待たなくてはならない。今後 ACME 経由で証明書の発行を試す機会があれば記事を更新する。
|
Loading…
x
Reference in New Issue
Block a user