月: 2022年10月 Page 3 of 4

AWS LightsailとLet’s Encryptによるワイルドカード証明書発行。

ひょんな事から無料でドメインを取得。このドメインを軸に「mkcertではなくLet's Encryptでもワイルドカード証明書が発行できないか」と思って試してみました。

やりたいこと

  • せっかく手に入れたドメインなので、自宅でそれを用いる。
  • mkcertを用いている自宅内サーバのgrowiをLet's Encryptに差し替える。

前提

以下は準備済みです。

  • AWS Lightsailで運用しているUbuntu 20系サーバがある
  • ドメインを取得している
  • certbotを運用している

手順

作業対象が手順によって異なります。

手順 -1- ドメイン設定

  1. lightsailのDNS設定で取得したドメインを有効にします。
  2. お名前.comのDNSサーバの向き先をlightsailのものに設定します。
  3. lightsailのAレコードに「自分が運用しているローカルサーバのIPと適当な名前」を設定して紐付けます。

手順 -2- ワイルドカード証明書発行コマンド入力 (lightsail側サーバ)

sudo certbot certonly --manual \
    --preferred-challenges dns-01 \
    --server https://acme-v02.api.letsencrypt.org/directory \
    -m 自分のメールアドレス \
    -d *.ドメイン名

入力後、以下のようにTXTレコードを登録するように求められます。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please deploy a DNS TXT record under the name
_acme-challenge.ドメイン名 with the following value:

DNSに登録するレコードの値

Before continuing, verify the record is deployed.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue

ここではまだEnterは押しません。

手順 -3- TXTレコード追加 (AWS Lightsail管理画面)

lightsailのDNS設定で

  • TXTのレコード
  • サブドメイン:_acme-challenge
  • 「以下で応答します」にDNSに登録するレコードの値

をそれぞれ設定して反映させます。

反映後、別のターミナルで以下を実行します。

nslookup -type=TXT _acme-challenge.登録したドメイン名 8.8.8.8

結果が返ってきたら次のステップに進みます。

手順 -4- ワイルドカード証明書発行 (lightsail側サーバ)

手順-2-で押していなかったEnterを押します。

以下のようにパスとファイルが明示されているので、そのパスの内容を控えておきます。(外部に公開しないよう注意します)

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/ドメイン名/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/ドメイン名/privkey.pem
   Your certificate will expire on 2023-01-09. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again. To non-interactively renew *all* of your
   certificates, run "certbot renew"

hostsファイル書き換え(growiサーバ側)

/etc/hostsファイルを

IPアドレス lightsailで設定したフルドメイン サブドメイン

で修正します。

証明書差し替え

こちらを元に、証明書を差し替えます。

動作確認

証明書差し替え → nginx再起動後、「AWS Lightsailで設定したドメイン名」でアクセスします。

DNS情報がインターネット上に公開されているので

  • 同じNWにつながっていれば、DNSを明示していなくともアクセスできる
  • mkcertのように端末に証明書をインポートせずに済む

のがLet's Encrypのいいところです。

袋、差し替え。(ボードゲーム『ぬくみ温泉開拓記』コンポーネント)

コンポーネントのアップグレードもまた、ボードゲームの楽しみの一つです。

資源チップを入れる布袋を

手作りの巾着へと差し替えです。しかも、作品のモチーフとなっている猫柄。

リバーシブルとなっているので、プレイヤーの区別もつけやすくなります。

サイズもピッタリのマスターピースでした。

ボードゲーム『ぬくみ温泉開拓記』ソロプレイ、パートナー(A面)雑感。

ボードゲーム『ぬくみ温泉開拓記』のソロプレイ、全てのパートナー(A面)で一通りこなしましたので、使ってみた感想です。

湯もみ

猫(ぬく丸)を捕まえることで追加ボーナス。ただ、ソロプレイは対人プレイ以上にNPCがぬく丸を捕まえてしまうので自由に動けませんでした。

麦酒売

ダイスボーナスをどう使っていくか。また、助っ人を多く引ける可能性が高いので、それらを用いながらのアクションが印象的です。

板前

「強い」と思った職業1。連動して上がっていく美味しさトラックと楽しさトラック。これによって資金と資源に不足することなく、最高レベルの料亭が何軒も建ちました。

詐欺師

「強い」と思った職業2。毎ターンほぼ確実に黄金チップを得られ、40勝利点の建物やワイルドカードになっていく様は文字通り詐欺くさい動きでした。その分デメリットは強烈(ゲーム終了時に資金を半分失う)ですけれど、それはプレイングで補えます。

貿易商

乱戦・混戦で強さを発揮します。移動系のアクションスペース(木材で移動2なら最高です)を得れば圧倒的な資金力で得点を稼げます。

あんま師

変則的なチップ上昇。なので、資源集めに集中するターンと一気に施設を建設するターンのメリハリが重要でした。

まとめ

個人的に

板前 ≧ 詐欺師 > 貿易商 = あんま師 > 麦酒売 ≧ 湯もみ

って感じの強さでした。

こちらはあくまでも自分のプレイスタイルと合致しているかどうかなので、もう少し研究すれば強さが変わる余地は十二分にあります。

growiサーバのログローテーション。

この記事で設定していたgrowiサーバ、ログの設定が漏れていたので追加しました。

手順

すべて管理者権限で実施しています。

ローテート設定追加

vi /etc/logrotate.d/growi

 ファイル内容

/var/log/nginx/chisataki.lyco.reco/*.log {
    daily
    rotate 10
    missingok
    notifempty
    sharedscripts
    compress
    delaycompress
    postrotate
        /usr/sbin/nginx -s reopen >/dev/null 2>&1 || true
    endscript
}

今回は

  • 日毎にログを取る
  • ローカルなので保存期間は10日

としています。

動作確認

logrotate -d /etc/logrotate.d/growi

でエラーが出ないことを確認しました。

ボードゲーム『ぬくみ温泉開拓記』ソロプレイで見過ごしやすいこと。

ここのところ、平日の夜でも本作のソロプレイを行っています。

そんな中、見落としやすいポイントが2つあったのでメモを残します。

NPCの最短距離

ソロプレイではNPCがぬく丸スポットを目指し「最短距離」で歩いていきます。

この「最短距離」というのがポイントであり、

普通に歩くのではなく馬車を用いたほうが歩数が少ないのであれば、NPCはその手段を執ります。(そして、どの距離が近いかはプレイヤーが知っているはずです)

NPCの足跡の扱い

NPCはダイスに沿って移動します。そして、その移動した「足跡」全てにキューブを置きます。

このキューブの上にプレイヤーは施設を建てることはできません。そして、これらのキューブは「施設」として扱います。したがって

土産物屋や工芸品の店といった周囲の施設によってボーナスが見込める施設の恩恵に預かることができます。

この、貿易商のように得られる資金の数で追加の勝利点を得るパートナーでは特に注意が必要でした。

nginxとapache連携。(リバースプロキシー&SSLアクセラレータ)

自室のサーバに専用redmineを運用するようになって半年ほど。一つの課題が浮かび上がりました。

課題

現状、

  • redmine
  • フォトアルバム
  • growi

を自宅サーバ群で運用中。Webサービスが増えるたびに「証明書更新をサーバ毎に行うのが面倒」です。ワイルドカード証明書を用いて、シンボリックリンクの張り替えで済むようにしてもなお各サーバに同じ設定を行うのは手間がかかる上にミスが生じる温床となります。

施策

そこで、既にgrowiサーバで運用しているnginxのリバースプロキシーをredmineにも拡張するようにしました。

やりたいことは以下です。(IPアドレスとドメインは便宜上です)

sequenceDiagram participant クライアント participant nginx as nginxサーバ<br> 192.168.1.30<br>abc .local participant redmine as redmine<br> 192.168.1.99<br>xyz.local クライアント->> nginx: abc.localにhttpアクセス par クライアント~nginxはhttps通信 note over nginx: httpsにリライト nginx -->> クライアント: httpsでの接続要求 and nginx~redmineはhttp通信 クライアント ->> nginx: redmineにhttpsアクセス note over nginx: SSLデコード nginx -->>+ redmine: クライアントからの要求を<br>redmine(xyz.local)に送信 redmine -->>- nginx: redmineのデータを送信 end nginx ->> クライアント:redmineからのデータを<br>abc.localとしてhttpsで送信

サクッとまとめると

  • redmineサーバのリバースプロキシーとしてnginxを利用
  • クライアント~nginxは常時SSL通信
  • nginx ~ redmineはhttp通信

これにより、SSLを導入する箇所をnginxサーバのみとします。

前提

以下を用意しています。

  1. nginxサーバ (仮IP: 192.168.1.30)
  • mkcertでローカル証明書を導入済み
  1. redmineサーバ(apacheで稼働)(仮IP: 192.168.1.99)
  2. ローカルDNSに以下を登録します。(自分の環境に読み替えます)
  3. abc.local - 192.168.1.30
  4. xyz.local - 192.168.1.99

環境

ともにUbuntu Linux 20.04系で動いています。

手順

全て管理者権限で実施します

redmineサーバでの設定(apache)

以下、ファイルを編集します。

vi /etc/apache2/sites-available/redmine.conf
ファイル内容
<Location /redmine>
PassengerBaseURI /redmine
PassengerAppRoot /var/lib/redmine
Require all granted
</Location>

Alias /redmine /var/lib/redmine/public

<VirtualHost 192.168.1.99:80>
    ServerName  abc.local
    ErrorLog /var/log/redmine/error.log
    CustomLog /var/log/redmine/access.log combined

        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^abc\.local
        RewriteRule ^/$ http://abc.local/redmine/ [R]
</VirtualHost>

設定反映

a2ensite redmine.conf
apache2ctl configtest
#Syntax OKを確認
systemctl restart apache2

nginxサーバでの設定

hostsファイル追記

vi /etc/hosts
追記内容
192.168.1.30 abc.local

nginx confファイル作成

vi /etc/nginx/sites-available/redmine.conf
ファイル内容
upstream abc {
       server 192.168.1.99:80;
}

server {
        listen 80;
        server_name abc.local;
        server_tokens off;
        return  301 https://$host$request_uri;
        access_log /var/log/nginx/redmine/access.log;
        error_log /var/log/nginx/redmine/error.log warn;
}

server {
        listen 443 ssl http2;
        server_name abc.local;
        server_tokens off;
        ssl_session_timeout 1d;
        ssl_session_cache shared:SSL:50m;
        ssl_session_tickets off;
        ssl_dhparam /etc/nginx/dhparam.pem;
    #openssl dhparam -out /etc/nginx/dhparam.pem 2048 として作成します(環境によっては5分以上かかります)
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
        ssl_prefer_server_ciphers off;
        add_header Strict-Transport-Security 'max-age=63072000';

        ssl_certificate /etc/certs/local.crt;
       # 証明書のパスに読み替えます
        ssl_certificate_key /etc/private/local.key;
      # 秘密鍵のパスに読み替えます

        access_log /var/log/nginx/redmine/ssl_access.log;
        error_log /var/log/nginx/redmine/ssl_error.log warn;

        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_max_temp_file_size 10240m;
        client_max_body_size 10240m;
        proxy_buffer_size 10240m;
        proxy_buffers 10 10240m;
        proxy_busy_buffers_size 10240m;
        proxy_redirect off;

       set $proxy_target  'abc';

       location / {
          proxy_pass http://$proxy_target;
       }
}

設定反映

ln -s /etc/nginx/sites-available/redmine.conf /etc/nginx/site-enabled/redmine.conf
nginx -t
# syntax is ok と test is successfulを確認します
systemctl restart nginx -t

確認

ローカルNWに接続されているクライアントのブラウザから

http://abc.local

にアクセスし、

  • https://abc.local/redmine の内容が出てくること
  • SSL通信ができていること

を確認します。

ボードゲーム『ぬくみ温泉開拓記』ソロプレイ感想

ソロプレイのみでの感想です。

  • セットアップ/プレイ時間に比して濃密なプレイ体験
  • 適度なインタラクションと心地よい箱庭感
  • 異なるパートナーによる見通しのいい戦略
  • イラストとゲームシステムの一体感

等々、『ぬくみ温泉繁盛記』と比肩できる傑作だと感じました。

【概要】

プレイヤーは開拓担当者として任命されました。パートナーの助力を仰ぎつつ

  • 未開の土地を調査し
  • 資源や名声を蓄え
  • 観光の目玉となる施設を建設し

最終的に街の繁栄に貢献していきます。

【ゲームシステム】

バッグビルディングと呼ばれるタイプのゲームです。(本作のモデルとなった『オルレアン』は未プレイなので違いはうまく説明できません)

資源チップを袋に入れてラウンドごと/イベントごとに指定の枚数を引き、それらのチップを個人ボードに配置することで様々な効果を発揮していきます。

【素晴らしいと思ったところ】

非対称ボードのリプレイ性

プレイヤーボードを兼ねるパートナーはいずれも資源や行動にボーナスを与えてくれ、ゲーム開始時から最終的な得点行動を示唆してくれます。パートナーは6人&両面仕様となっているので、異なる戦略を毎回試すなどのリプレイ性が非常に高いものとなっています。

共通ボードがもたらす箱庭とインタラクション

開拓者が所狭しと駆け巡る共通ボードは建築予定地となっています。ここに

  1. プレイヤーが移動するには資源や能力が必要
  2. 一度施設が建てられると後のプレイヤーは(自分でさえも)上書きできない
    • ソロプレイの場合、NPCが通過した場所には建物が配置できない

が加わることによって、町が発展していく様を目の当たりにすることができます。このため、ラウンドが進むごとにより建設予定地の陣取りがヒートアップしていきます。

また、施設を建設することは

  1. 即時ボーナスを得られる
  2. 勝利点となる
  3. 次ラウンドに引けるチップが多くなる

等のメリット満載。なので、資源集めと施設建設を両立させながらのジレンマに常に悩まされることになります。

助っ人カードの汎用性

『繁盛記』でも大いに役立った助っ人カードはここでも健在。資源の供給や追加移動の付与、最終的な得点行動に寄与してくれます。これによって、幅広いプレイ感をプレイヤーにもたらしてくれます。

【やや残念だと思ったところ】

ずれやすいボード

割と薄めのボードは資源/キューブがずれやすいのが難点。

【まとめ】

  • システムとフレーバーが一致した没入感
  • 複雑なシステムを分かりやすく落とし込んだルールの整備
  • ここ数年のトレンドである非対称性&程よいインタラクション
  • 雰囲気たっぷりの箱庭感

がキチッとまとまった傑作が、この『ぬくみ温泉開拓記』です。

『ぬくみ温泉繁盛記』に次いで、今後のボードゲームのソロプレイの一つの基準となる作品を生み出していただいたことに驚嘆しました。

百均グッズによるボードゲーム『ぬくみ温泉開拓記』収納。

ぬくみ温泉開拓記

2020年に出会って以来コンスタントに遊んでいるワーカープレースメント『ぬくみ温泉繁盛記』。

その舞台やキャラクターを用いた新たなゲームが出たとのことで早速の入手です。

収納

『繁盛記』よりも大きな箱だったので、収納で詰まることはありませんでした。

使った百均グッズ

以下、使った収納グッズと内訳です。

品名数量何を収納したか
マルチケース ハーフサイズ1カード/ぬく丸/ダイス
Case and Case 4分割2黄金以外の資源チップと建物タイル
ピルケース(中身のみ)3黄金チップとお金チップ
スクリュー式ケース4開拓者&キューブ

特に、このスクリュー式ケースは各プレイヤーが使う駒とキューブがジャストで入るマスターピースでした。

マルチケース(ハーフ)もスリーブ入りのハーフサイズカードのみならず隙間にダイスが入ったのも抜けた発想でした。

全て入ったのがこの形。若干の隙間はコンポーネント「布袋」で埋められるので問題ありません。

プレイの感想はまた改めて行います。

ワールドスクウェアで食べたもの、買ったもの。

2年と9ヶ月半ぶりに訪れた東武ワールドスクウェア、前と違う試みをしました。

まずは食べ物。移動中に食べたり前泊していた鬼怒川で食べるというパターンが多かったのですが、園内での昼食です。

日光の名産、湯葉をふんだんに使ったつけ蕎麦。湯葉自体が濃厚なので豚肉/辛いつけダレとも調和します。

付け合わせに湯葉刺しがあるのも心憎い演出でした。

そして、お土産も購入。

実際に東武電車で使われている座席と同じ生地を使ったクッションです。当然のことながら手触りも質感も本物。

それ以上に、こちら、以前から悩ませていた

こちらの背景にも一役買うのではと思いました。

布地が光を適度に吸うので、フィギュア系の背景としても使えそうと思い立ちました。

もう少し光の加減を調節すればうまくいきそうな気配を見せました。

東武ワールドスクウェア訪問。(2022年9月)

2年と9ヶ月半ぶりにここに訪れました。

入るなり東京スカイツリーがお出迎え。既存のレンズで、細部までしっかり撮れるのはここが「ミニチュアの世界」だからに他なりません。

周りがビルではなく木々のタワーブリッジ。

2019年と最近になって作られた『暁の寺』(ワット・アルン)。背後にスカイツリーが顔をのぞかせています。

厳島神社からは「逆さスカイツリー」が見えるのが隠れた名所です。

金閣寺の池ではトンボが止まっていて、スケールを感じました。

Page 3 of 4

Powered by WordPress & Theme by Anders Norén