UPKI電子証明書発行サービスのACMEプロトコルをGitLabで利用する

はじめに

UPKI電子証明書発行サービスのACMEプロトコルを自サーバで運用しているGitLabから利用する。なお、すでにACMEプロトコル認証情報(EAB)を取得しているとする。また、GitLabは稼働済みとする。

関連

環境

  • Debian GNU/Linux 13.5
  • gitlab-ce 19.0.2 (APTでインストール)

運用環境

サーバ名がwww.hogehoge.jp であるとき、https://www.hogehoge.jp/ にアクセスすると https://www.hogehoge.jp/users/sign_in にリダイレクトされる設定になっている。

certbotのインストール

snapdのインストール

% sudo apt update
% sudo apt install snapd -y

certbotのインストール

sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot
certbot --version

HTTP-01用のディレクトリの作成

% sudo mkdir -p /var/acme/.well-known/acme-challenge
% sudo touch /var/acme/.well-known/acme-challenge/index.html
% cd /var/acme/
% sudo chown -R gitlab-www:gitlab-www .well-known

/etc/gitlab/gitlab.rb の編集

アクセス制限のかかったGitLabにLet's Encryptをつかってhttps化する · GitHubを参考にした。

% cd /etc/gitlab
% sudo cp -p gitlab.rb gitlab.rb.YYYYMMDD (注:YYYYMMDDは西暦日付8桁表示)

gitlab.rb の以下の該当部分を変更する。

  # httpでアクセスしたときにhttpsへリダイレクトする設定をオフにする。
 nginx['redirect_http_to_https'] = false 

 # 追加設定用のファイルを読み込めるようにする
 nginx['custom_nginx_config'] = "include /etc/gitlab/custom_nginx_config.conf;"

 # GitLab標準の証明書更新機能をオフにする
 letsencrypt['enable'] = false

追加設定用のファイルを作成する。

% sudo touch /etc/gitlab/custom_nginx_config.conf

custom_nginx_config.confの中身を以下のようにする。

server {
        listen 80;
        server_name _;
        access_log  /var/log/gitlab/nginx/access.log;
        error_log   /var/log/gitlab/nginx/error.log;
        location / {
                return 404;
        }
        location /.well-known {
                alias /var/acme/.well-known;
        }
}

変更した設定を反映させる。

% sudo gitlab-ctl reconfigure
% sudo gitlab-ctl restart nginx

サーバ証明書の取得

取得したEABに記載されているACMEアカウント登録コマンドを実行する。コマンドの説明は4-1-1. 証明書発行を参照のこと。

% sudo certbot register --debug -vvv --server 'https://secomtrust-acme.com/acme/' --eab-kid xxxxxxxxxxxx --eab-hmac-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --agree-tos -m email@example.com --no-eff-email

続いてサーバ証明書を取得する。なお、以下のコマンドでは鍵のタイプとして ECDSAを用いている。これはEAB取得時に選択した鍵タイプを選ぶこと(RSAかECDSA)。

% sudo certbot certonly --webroot -w /var/acme -d www.hogehoge.jp --key-type ecdsa --server 'https://secomtrust-acme.com/acme/'

サーバ証明書の取得に成功すると証明書と秘密鍵が以下のようなファイル名で設置される。

  • 証明書:/etc/letsencrypt/live/www.hogehoge.jp/fullchain.pem
  • 秘密鍵:/etc/letsencrypt/live/www.hogehoge.jp/privkey.pem

取得したサーバ証明書を使用するように/etc/gitlab.rbを編集する。編集箇所は以下の通り。

nginx['ssl_certificate'] = "/etc/letsencrypt/live/www.hogehoge.jp/fullchain.pem"
nginx['ssl_certificate_key'] = "/etc/letsencrypt/live/www.hogehoge.jp/privkey.pem"

/etc/gitlab.rbを反映させる。

% sudo gitlab-ctl reconfigure

サーバ証明書更新時のdeploy-hookの設定

snapでcertbotをインストールしたため、systemd timerで自動更新される。その際に更新された証明書を反映させるdeploy-hookを準備する。詳しくは 4-1-1. 証明書発行の「自動更新について」を参照のこと。

% cd /etc/letsencrypt/renewal-hooks/deploy
% sudo touch restart-services.sh
% sudo chmod 755 restart-services.sh

restart-services.shの中身を以下のように編集する。

#!/usr/bin/bash
gitlab-ctl reconfigure

ACMEプロトコル用に.well-known/acme-challengeだけ80番ポートでアクセスさせる

はじめに

UPKIプロジェクトにおいて、ACMEプロトコルでサーバ証明書の自動更新をする。
nii-auth.atlassian.net

上記マニュアルではcertbotを用いてHTTP-01で自動更新するのが推奨されている。その際には http://FQDN/.well-known/acme-challenge/ にアクセスできるように設定する必要がある。

ところが、最近はhttpsでアクセスすることが推奨されているので、これまではApacheのRewriteモジュールを用いて、httpでアクセスしてきたクライアントをhttpsに自動でリダイレクトしてきた。

http://FQDN/.well-known/acme-challenge/ にアクセスしてきた場合だけ、httpsにリダイレクトしないように設定する。

環境

  • Debian GNU/Linux 13.5
  • Apache 2.4.67

設定方法

ドキュメントルートを /var/acme とする。

% sudo mkdir -p /var/acme/.well-known/acme-challenge
% cd /var
% sudo chown -R www-data:www-data acme (注:www-dataはapacheを起動するユーザ)

Apacheの設定ファイルを編集する。設定ファイルは /etc/apache2/sites-available/default.conf とする。
default.conf の中身は以下の通り。

<VirtualHost VirtualHost _default_:80>
            ServerName www.hogehoge.jp

            ServerAdmin fugafuga@hogehoge.jp

             # ドキュメントルートの指定
             DocumentRoot /var/acme

             ErrorLog ${APACHE_LOG_DIR}/error.log
             CustomLog ${APACHE_LOG_DIR}/access.log combined

             # .well-known/acme-challengeの設定
             <Directory /var/acme/.well-known/acme-challenge/>
                Options -Indexes
                Require all granted
             </Directory>

             ReWriteEngine On

             #  HTTPのアクセスだけ対象とする。
             ReWriteCond %{HTTPS} off

             #  「.well-known/acme-challenge/***」というリクエストは除く
             ReWriteCond %{REQUEST_URI} !(^/\.well-known/acme-challenge/.*)

             #  httpsにリダイレクト
             RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</VirtualHost>

設定ファイルを変更したらApacheに設定ファイルを読み込み直させる。

% sudo systemctl reload apache2

スコッツボロ事件におけるジェーン・ニュートンの話は存在が怪しい

Xで以下のポストが流れてきた。

(Grok訳)
1931年、アメリカのアラバマ州で、9人の黒人少年が逮捕された。
2人の白人少女が彼らを強姦したと告発したが、証拠はなく、全員白人の陪審員だったのに、8人に死刑判決が下された。一番年少はわずか13歳だった。
刑務所で誰も彼らの面倒を見なかった。
そんな中、57歳の白人縫製女工、ジェーン・ニュートンが現れた。
新聞を見て、自分でバスに乗って刑務所に来た。それから毎週火曜日に彼らを訪ねた。
彼女は弁護士でも活動家でもなく、ただの普通のおばさんだった。
彼女はフライドチキンやコーンブレッドを持参し、鉛筆も持ってきて、ほとんど読み書きのできない子どもたちに自分の名前を書くことを教えた。
看守が彼女を「ニグロ好き」と罵っても、彼女はただこう返した。「私はクリスチャンよ。この子たちはお母さんに手紙を書くべきだわ。」
彼女は手紙の代筆をし、郵送を手伝った。誰かが殴られて目を失明したら、彼女は物語を音読して聞かせた。誰かの誕生日が来たら、ガラス越しに誕生日ソングを歌い、ケーキを贈った。
その後、最高裁判所が2度にわたり判決を覆し、6年間の長い闘いとなった。
ジェーン・ニュートンは1946年に亡くなり、家族を残さなかった。
少年たちはお金を出し合って彼女に墓碑を建て、碑文には一言だけ刻んだ:
「誰も来ないときに、彼女は来た。」
2023年、アラバマ州がついにこれらの少年たちに名誉回復を認めた。
最後に生き残った老人が、恨んでいるかと聞かれ、こう答えた:
「恨まないよ。ミス・ジェーンが自分の名前を書くことを教えてくれた。その名前で名誉回復の書類にサインしたんだ。それで十分だ。」

時には、真に運命を変えるのは、何か偉い人ではなく、
ただの普通の人が、もう一人の人間に優しくする心だ。

このポストにコミュニティーノートがついていた(この記事は現在未公開)。

スコッツボロ・ボーイズ事件の歴史記録には、ジェーン・ニュートンの存在や彼女の面会訪問の話は一切記載されておらず、その詳細は架空のものです。 アラバマ州は2023年ではなく2013年に彼らに特赦を与えました。 
https://en.wikipedia.org/wiki/Scottsboro_Boys

英語版のポスト

そのポストについていたコメント

(Grok訳)
オレン・モンゴメリーは亡くなった時43歳で、投獄される前には読み書きができました。興味深いですね、この情報はどこから入手したんですか?私が目にするのは、IGとFacebookでこのストーリーと一緒に、年配の白人女性と黒人の子供たち/若者たちのAI生成の写真の束だけです。

元のポストの画像をGeminiに尋ねてみると以下の返信だった。

質問:この画像がAI生成であるかどうか調べてください。
回答:この画像には、Google AI を使用して編集または生成されたことを示すデジタルウォーターマーク(電子透かし)が検出されました。そのため、画像の一部または全体がAIによって作成された、あるいは加工されたものであると判断できます。

en.Wikipediaの記事によれば、「全米共産党(CPUSA)および全米有色人種地位向上協会(NAACP)の支援を受け、この事件は控訴された。」とあるので、誰も面会に来ていないということはないと思う。
en.wikipedia.org

最初のポストを「すごい良い話だな」と読んだあとに、コミュニティーノートみて、スンとなった。画像生成が簡単になって「良い話」の信ぴょう性判断がどんどんと難しくなっている。出典明記しないのはやっぱ信用できないよね。

追記:別バージョン

同じ話の別バージョン。画像が異なっている
www.facebook.com

(Metaの自動翻訳)
1931年、アラバマ州スコッツボロで、9人の黒人のティーンエイジャーが貨物列車から脱車した。 2人の白人女性が彼らをレイプで非難した。 証拠はない 真っ白な陪審員。 8人が死刑判決。 13歳のロイ・ライトは、子供だったから人生を得た。
この事件は国際的なニュースになった。 しかし、キルビー刑務所の中では、少年たちは一人ぼっちだった。 女性1人を除いて:ジェーン・ニュートン(57歳)バーミンガム出身の白人仕立て。 彼女は新聞でそれを読んでバスに乗った。
彼女は弁護士じゃなかった。 彼女は活動家ではなかった。 彼女は毎週火曜日にビジターの部屋に座っていた。 彼女はフライドチキン、コーンブレッド、鉛筆を持ってきた。 彼女は彼らに名前を書くように教えた。 ほとんどが無文だった。
警備員たちは彼女を「ニガー・ラバー」と呼んだ。 "彼女は言った:「私はクリスチャンです。 君たち、母親を書くんだ。 ” 彼女は自分で手紙を郵送した。 オレン・モンゴメリーが刑務所の殴打で盲目になったとき、彼女は彼に読み聞かせをした。 アンディ・ライトが18歳になった時、彼女は彼にケーキを焼いて、ガラス越しに歌った。
最高裁判所は有罪判決を2回ひっくり返した。 6年かかった、4回の試練。 4人の男の子がついに解放された。 4人、何十年も服役した。 1つ目、ヘイウッド・パターソンは1948年に脱走し、バーの喧嘩で死亡。
ジェーンは1946年に亡くなった。 彼女は家族を残さなかった。 少年たちは彼女の墓石を欲しがった。 それは書いてある:「誰も来なかった時に彼女は来た。 ”
2013年、アラバマ州はスコッツボロ・ボーイズを失礼した。 最後の生存者オレン・モンゴメリー(95歳)は怒っているかどうか尋ねられた。 彼は言った:「いいえ。ミス・ジェーンは私に名前を書くように教えてくれた。 そうやって恩赦に署名した。 もう十分。

メモ:教育旅行民泊

以前、Xでメモしたやつの転載。

教育旅行民泊

修学旅行の人的・金銭的コストの増大から「教育旅行民泊」がトレンドになりつつあるとのこと。

www.yomiuri.co.jp

大型の宿泊施設や目玉となる観光資源のない農山村地域で、“普段の生活”を活用した地域活性化策としても注目されている。受け入れ家庭は協力費などの名目で、滞在人数に応じて5000円~数万円を得られる。

生徒は一般家庭で寝泊まりすることで、田舎暮らしを実体験できる。農作物の収穫、魚釣り、地方ならではの家庭の味、伝統芸能、方言などを直接見聞きできるまたとない機会となる。

以下、日本修学旅行協会の竹内秀一氏のコラム。
www.travelvoice.jp

一方、新型コロナの感染が拡大しているさなかに、現行の学習指導要領が実施されました。その柱になっているのが「探究的な学習」です。「探究的な学習」では、生徒がさまざまな体験的な活動をしていくなかで課題を発見したり、課題解決に向けての情報を収集したりすることが重視され、学校にはそうした学習を推進することが求められています。そうはいっても、学校の中だけで、それをおこなうことは難しいのも現実です。

そこで、修学旅行を「探究的な学習」を実践する場にしようという学校が増えてきました。修学旅行における「学び」の比重が、ますます大きくなってきているといってよいでしょう。

www.travelvoice.jp

www.travelvoice.jp

修学旅行のテーマの一つに「平和学習」がある

benesse.jp

―「探究的な学習」の一環として、どのようなプログラムが行われているのでしょうか。
「SDGs」「平和学習」「異文化体験」「企業訪問・工場見学」「震災学習、防災学習」「農業漁業学習」など、さまざまなテーマがあります。地域の観光協会が中心となって、修学旅行を誘致しようと、多様なプログラムが作られています。

www.travelvoice.jp

実は、現行の中学校・高校の学習指導要領では、どの教科・科目にも「平和学習」は単元としては設けられていません。そのため、学校での「平和学習」は、国語や社会(地理・歴史、公民)、道徳などの教科の授業でおこなうことが少なくありません。しかしこれでは、断片的になってしまいがちな側面があります。

それだけに、「総合的な学習の時間」(高校では「総合的な探究の時間」)を使い、生徒たちに「戦争と平和」についてしっかりと考えてもらいたいという学校が多くあるようです。こうした学校では、「総合的な学習(探究)の時間」と修学旅行とをリンクさせて「平和学習」をおこなうことが多くなっています。日本修学旅行協会の調査でも、コロナ禍の時期を含む2018~2022年度の5年間に実施された中学校・高校の修学旅行で、「平和学習」は、学校が「重点を置いた活動」として常に上位にランクされている活動でした。

沖縄県では自治体レベルで教育民泊を実施している

www.nikkei.com

(注:2017年の記事です)
沖縄県は県内への修学旅行生が利用する民泊について、受け入れ体制を官民一体で整備するための指針を制定した。コーディネーターに県の研修を受けさせるほか、受け入れ民家に旅館業法の営業許可取得を義務付ける。県は「安心・安全という独自の民泊ブランドを構築し、誘客につなげたい」としている。

県は修学旅行や大学のゼミ合宿などで利用する民泊を「教育旅行民泊」と定めた。「教育旅行民泊取扱指針」では、民泊の受け入れ窓口となる団体に対し、マニュアルの作成、コーディネーターの配置、受け入れ民家向け講習の実施を求める。

ryukyushimpo.jp

県内への修学旅行誘致は閑散期対策として1980年ごろから始まった。沖縄観光は夏場の7~8月がトップシーズンで、冬場との客数に大きな差があるためにホテルや観光施設はコスト高になり、正規雇用を抑制するなどの傾向があった。中学生が3年生の1学期(4~6月)、高校生が2年生の2学期(9~11月)に行われていた修学旅行を誘致することによって、閑散期の春・冬期との客数の差を詰め、平準化が期待された。

www.yomiuri.co.jp

民泊修学旅行の受け入れに積極的な沖縄県では、受け入れ学校数が2013年度に618校、14年度971校、16年度1218校と増え続けている。

www.nakijinson.jp

izena-kanko.jp

minpaku.iejima.org

www.kanko-kumejima.com

education.okinawastory.jp

umarijima.com

初回の講義で伝えていること(2026年版)

本文

私がここ数年の初回の講義で受講生に伝えていることは以下の通り。前のバージョンから帽子の注意事項を外した(帽子といってもキャップぐらいで後ろの席の邪魔にならないので)。

  • 飲み物はOK(においの強いものはだめ)。春学期の場合は熱中症予防も呼びかける。
  • 食べ物はダメ(のど飴はOK)。
  • 私語はダメ。
  • 講義で使っているスライドはPDF形式で講義支援システムにて配布する。
  • PDF閲覧ためにスマートフォン・ノートパソコンの利用を推奨。
  • 録音、録画、写真はOK。ただし、講義資料などで本の図などを使っているので、自分の復習用とし、SNSなどネットににアップロードしないこと。
  • 途中退席には白い目(授業がわからなくて単位落とすのは自業自得)。
  • 遅刻には白い目(授業がわからなくて単位落とすのは自業自得)。
  • 内職には白い目(授業がわからなくて単位落とすのは自業自得)。

なお、企業からの外部講師に話してもらう講義の場合は撮影禁止を伝えることもある。

初回の授業・講義で期待する受講姿勢を伝えるというのは2000年代から言われていると思う。