Let’s Encryptを利用して、SSL証明書を取得する(IIS版)

Let’s Encrypt と SSL証明書

SSL証明書は「認証局」と呼ばれる第三者機関によって発行される電子証明書です。

これは「このドメインはちゃんと実在しており、管理者も定められている」ということを、第三者機関が確認・証明してくれるものです。
通常は、証明機関から年単位で有償で購入する形になるのですが、Let’s Encryptというサービスを使うとSSL証明書を無料で取得することが出来ます。

ただ、Let’s Encryptで取得できる証明書の有効期限は発行日から90日という制限が\ありますが、専用アプリを利用すると自動更新することかできます。
(更新期限が30日以内になると自動的に90日期限の証明書を取得)

自動更新プログラムであるwin-acmeを利用すると
IIS等で利用可能な証明書を取得できます。

特にIISの場合、1つの作業で証明書の発行からIISのSSL設定、証明書自動更新スケジュール設定まで
自動でやってくるので非常にお手軽です。

SSL証明書取得のための前提条件

IIS設定時の条件としては以下のような感じです。

・DynaicDNSなどで、インターネットからアクセス可能なドメインを取得していること。
 [ここでは nsb.homeip.net をドメインとします。]

・IISでhttp(:80)で通信可能な形で設定(バインドの設定でアクセスできるホスト名を登録しておくこと)
 [設定時点では、https(:443)で接続できていなくても可]

・IISにhttpでインターネット経由でアクセスできていること
 [http(:80)やhttps(:443)をIISで処理できるように、ルータやDMZ設定などが実施されていること]

自動更新プログラムのダウンロード

自動更新プログラムダウンロードは以下から取得できます。
A simple ACMEv2 client for Windows (for use with Let’s Encrypt et al.)
https://www.win-acme.com/

2025/05/17時点での最新版:「win-acme.v2.2.9.1701.x64.pluggable.zip」です

このファイルを任意のディレクトリに展開します。
例 C:\Tools\win-acme

win-acmeを配置したフォルダの wacs.exe を管理者として実行します。

ここでは、N:Create certificate (default settings)のモードで進めます。

A simple Windows ACMEv2 client (WACS)
 Software version 2.2.9.1701 (release, pluggable, standalone, 64-bit)
 Connecting to https://acme-v02.api.letsencrypt.org/...
 Connection OK!
 Scheduled task not configured yet
 Please report issues at https://github.com/win-acme/win-acme

 N: Create certificate (default settings)
 M: Create certificate (full options)
 R: Run renewals (0 currently due)
 A: Manage renewals (0 total)
 O: More options...
 Q: Quit

 Please choose from the menu: N

 Running in mode: Interactive, Simple

 Please select which website(s) should be scanned for host names. You may
 input one or more site identifiers (comma-separated) to filter by those
 sites, or alternatively leave the input empty to scan *all* websites.

 1: Default Web Site (1 binding)

 Site identifier(s) or <Enter> to choose all: 1

 1: nsb.homeip.net (Site 1)

 Listed above are the bindings found on the selected site(s). By default all
 of them will be included, but you may either pick specific ones by typing the
 host names or identifiers (comma-separated) or filter them using one of the
 options from the menu.

 P: Pick bindings based on a search pattern
 A: Pick *all* bindings

 Binding identifiers(s) or menu option: A

 1: nsb.homeip.net (Site 1)

 Continue with this selection? (y*/n) - yes

 Source generated using plugin IIS: nsb.homeip.net

Terms of service:    C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\LE-SA-v1.5-February-24-2025.pdf

 Open in default application? (y/n*) - yes

 Do you agree with the terms? (y*/n) - yes

 Enter email(s) for notifications about problems and abuse (comma-separated):administrator@nsb.homeip.net

 Plugin IIS generated source nsb.homeip.net with 1 identifiers
 Plugin Single created 1 order
 [nsb.homeip.net] Authorizing...
 [nsb.homeip.net] Authorizing using http-01 validation (SelfHosting)
 [nsb.homeip.net] Authorization result: valid
 Downloading certificate [IIS] Default Web Site, (any host)
 Store with CertificateStore...
 Installing certificate in the certificate store
 Adding certificate [IIS] Default Web Site, (any host) @ 2025/5/17 in store WebHosting
 Adding certificate CN=R10, O=Let's Encrypt, C=US in store CA
 Installing with IIS...
 Adding new https binding *:443:nsb.homeip.net
 Committing 1 https binding changes to IIS while updating site 1
 Adding Task Scheduler entry with the following settings
 - Name win-acme renew (acme-v02.api.letsencrypt.org)
 - Path C:\Tools\win-acme
 - Command wacs.exe --renew --baseuri "https://acme-v02.api.letsencrypt.org/"
 - Start at 09:00:00
 - Random delay 04:00:00
 - Time limit 02:00:00
 Adding renewal for [IIS] Default Web Site, (any host)
 Next renewal due after 2025/7/11
 Certificate [IIS] Default Web Site, (any host) created

 N: Create certificate (default settings)
 M: Create certificate (full options)
 R: Run renewals (0 currently due)
 A: Manage renewals (1 total)
 O: More options...
 Q: Quit

 Please choose from the menu:

エラーが発生しなければ、これで証明書の取得や、IISの設定、更新スケジュールの更新まで完了しています。

サイトバインド情報

httpsのサイドバインド情報

発行、設定された証明書詳細

Edgeでhttps通信すると、証明書エラーにならずに表示されます。

あとは、必要であればWebコンテンツ側の調整して完了です。

この辺を参考にWeコンテンツ側の設定を貯制します。
WordPressサイトを常時SSL化(http→https)する全手順を丁寧に解説 – UPDATE

なお、NIGNXの場合は、以下のURLが参考になりそうです。
SSLに対応したNGINXリバースプロキシを構築する手順 #nginx – Qiita

参考URL
win-acme を利用してIISでLet’s Encrypt のSSL証明書を利用したSSLサイトを作成する – IIS – Internet Information Service Tips | iPentec

WordPressサイトを常時SSL化(http→https)する全手順を丁寧に解説 – UPDATE

SSLに対応したNGINXリバースプロキシを構築する手順 #nginx – Qiita

Views: 296

カテゴリー: 未分類 | コメントする

docker内コンテナ環境でファイルを編集したい

docker内コンテナ環境でファイルを変更したいのに、コンテナ環境にテキストエディタ(vi)が入っていない場合の対策

方法1 docker内コンテナ環境でviを使えるようにする

以下のコマンドでdocker内コンテナ環境にviをインストールする

debian,ubuntuベースのイメージから作られたコンテナ環境であれば、apt-getでviをインストール可能です。

apt-get update
apt-get install vim

なおDocker DesktopなどのGUI環境¥などであれば、GUIでdocker内VMイメージ環境のシェル(コンソール)にアクセス可能です。

Docker実行環境からコマンドでdocker内VMイメージ環境のシェル(コンソール)に入るには、以下のような手順になります。

docker ps で稼働中のdocker内VMイメージのCONTAINER IDを確認します。

root@Win10-Docker:~# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca71aaf8ace1 wordpress:latest "docker-entrypoint.s…" 3 years ago Up 12 hours 0.0.0.0:18080->80/tcp wordpress_wordpress_1
21c917c49b3b phpmyadmin/phpmyadmin:latest "/docker-entrypoint.…" 3 years ago Up 12 hours 0.0.0.0:18888->80/tcp wordpress_phpmyadmin_1
78f2db140011 mysql:5.7 "docker-entrypoint.s…" 3 years ago Up 12 hours 3306/tcp, 33060/tcp wordpress_db_1
root@Win10-Docker:~#

docker exec -it [先ほどコピーしたコンテナID] /bin/bash でシェルに入ります。

root@Win10-Docker:~# docker exec -it ca71aaf8ace1 /bin/bash
root@ca71aaf8ace1:/var/www/html# pwd
/var/www/html
root@ca71aaf8ace1:/var/www/html# ls -al wp-config.php
-rw-r--r-- 1 www-data www-data 6311 May 18 01:58 wp-config.php
root@ca71aaf8ace1:/var/www/html# vi wp-config.php
root@ca71aaf8ace1:/var/www/html# exit
exit
root@Win10-Docker:~#

方法2 Docker実行環境にファイルをコピーして編集してから元に戻す

root@Win10-Docker:~# cd /tmp/edit
root@Win10-Docker:/tmp/edit#
root@Win10-Docker:/tmp/edit# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca71aaf8ace1 wordpress:latest "docker-entrypoint.s…" 3 years ago Up 13 hours 0.0.0.0:18080->80/tcp wordpress_wordpress_1
21c917c49b3b phpmyadmin/phpmyadmin:latest "/docker-entrypoint.…" 3 years ago Up 13 hours 0.0.0.0:18888->80/tcp wordpress_phpmyadmin_1
78f2db140011 mysql:5.7 "docker-entrypoint.s…" 3 years ago Up 13 hours 3306/tcp, 33060/tcp wordpress_db_1
root@Win10-Docker:/tmp/edit#
root@Win10-Docker:/tmp/edit# docker container cp ca71aaf8ace1:/var/www/html/wp-config.php .
root@Win10-Docker:/tmp/edit# ls
wp-config.php
root@Win10-Docker:/tmp/edit# vi wp-config.php
root@Win10-Docker:/tmp/edit#
root@Win10-Docker:/tmp/edit# docker container cp wp-config.php ca71aaf8ace1:/var/www/html/wp-config.php.update
root@Win10-Docker:/tmp/edit#

ただし、コピーしただけだと、所有者情報やファイル権限情報等がリセットされる場合があるので、コンテナ環境内で、コピー元の情報と同じように戻します。
あとはファイルを入れ替えるなりで完了です。

root@Win10-Docker:~# docker exec -it ca71aaf8ace1 /bin/bash
root@ca71aaf8ace1:/var/www/html# ls -al wp-config.php*
-rw-r--r-- 1 www-data www-data 6311 May 18 01:58 wp-config.php
-rw-r--r-- 1 root root 6311 May 18 02:58 wp-config.php.update
root@ca71aaf8ace1:/var/www/html# 
root@ca71aaf8ace1:/var/www/html# chown www-data:www-data wp-config.php.update
root@ca71aaf8ace1:/var/www/html# 
root@ca71aaf8ace1:/var/www/html# ls -al wp-config.php*
-rw-r--r-- 1 www-data www-data 6311 May 18 01:58 wp-config.php
-rw-r--r-- 1 www-data www-data 6311 May 18 02:58 wp-config.php.update
root@ca71aaf8ace1:/var/www/html#
root@ca71aaf8ace1:/var/www/html#
root@ca71aaf8ace1:/var/www/html# mv wp-config.php wp-config.php.org
root@ca71aaf8ace1:/var/www/html# mv wp-config.php.update wp-config.php
root@ca71aaf8ace1:/var/www/html#
root@ca71aaf8ace1:/var/www/html# ls -al wp-config.php*
-rw-r--r-- 1 www-data www-data 6311 May 18 02:58 wp-config.php
-rw-r--r-- 1 www-data www-data 6311 May 18 01:58 wp-config.php.org
root@ca71aaf8ace1:/var/www/html#
root@ca71aaf8ace1:/var/www/html#exit

参考URL

Dockerコンテナ内のファイルを編集する | mucca code

[Docker] エディタをインストールしていないDockerコンテナ内でファイルを追加・編集する方法

Views: 67

カテゴリー: 未分類 | コメントする

祝!無償版ESXiが復活してダウンロードできるようになりました

vsphere Hypervisorの提供復活

2024/2にVMware製品の永続版ライセンスを廃止したことに伴って、2024年2月にvsphere Hypervisorの提供が終了していましたが、
4/10にESXi8.0U3e(P05)のリリースとともに、vsphere Hypervisor(無償版ESXi)の提供再開されたようです。

制限事項としては、以下の通りです。

・サポートなし。非商用利用を目的とのこと。
・vCenterとの連携不可のため、一元管理はできません(PowerCLIやRESTAPIなどのAPIによる操作も不可)。
・管理にはVMware Host Clientを利用します。
・仮想マシンごとに最大 8 つの仮想 CPU をサポートします


ダウンロードは以下からダウンロードできます(要Brodecomアカウント)。
https://support.broadcom.com/group/ecx/free-downloads
→「VMware vSphere Hypervisor」

5/1時点では、以下のバージョンが対象です。

VMware vSphere Hypervisor 8.0U3e [Build Number: 24677879] 4/10リリース

ライセンスについては、新規インストールした時点で無期限の vSpehre Hypervisor ライセンスが適用された状態になります。
このため、以前のように60日評価モードは利用できませんが、商用ライセンスを登録すれば該当機能を利用することができます。

なお、パッチについては、先日からサポート契約しないとオンラインデポがダウンロードできなくなっていますので、注意してください。
ただし、更新されたVMware vSphere Hypervisorのメディアが公開されれば、更新インストールをすることでアップデートすることはできそうです。

参考URL

VMware ESXi 8.0 Update 3e Release Notes
https://techdocs.broadcom.com/us/en/vmware-cis/vsphere/vsphere/8-0/release-notes/esxi-update-and-patch-release-notes/vsphere-esxi-80u3e-release-notes.html

調べたこと 試したこと: vSphere Hypervisor (無償版 ESXi) の提供再開と入手方法、通常版との比較

Views: 113

カテゴリー: ESXi | コメントする