PC・コンピューター

PCやコンピュータ、サーバー、プログラミング等について書き留めています。

  • ChatGPTと一緒にWebサイトをSSL化してみた

    先日、Ubuntu + Apache2 + WordPress環境で運用している当サイト「科学のつまみ食い(kagaku.info)」を、HTTPからHTTPSへ移行しました。

    最近ではHTTPS化は当たり前になっていますが、自宅サーバーで運用していると「そのうちやろう」と後回しにしがちです。私もまさにその一人でした。

    しかし、せっかく公開しているサイトですから、安全性や信頼性を高めるためにもSSL化しておきたいところです。

    そこで今回は、Let’s Encryptによる無料SSL証明書を利用し、サイト全体のHTTPS化に挑戦してみました。


    今回も頼りになったChatGPT

    実は少し前、WordPressをサブディレクトリで運用していた際に発生したトラブルを、ChatGPTの助けを借りながら解決したことがあります。

    ▶ 関連記事
    WordPressサブディレクトリ運用時のトラブルと解決方法

    今回のSSL化はトラブル対応というわけではありませんでしたが、一度その便利さを知ってしまうと、つい頼りたくなってしまいます。

    作業中に表示される警告メッセージや設定内容をChatGPTに確認しながら、

    • 現在の設定は正しいのか
    • 次に何を確認すべきか
    • エラーの原因はどこにありそうか

    を一つずつ整理し、問題を切り分けながら進めることができました。

    まるで隣に詳しいシステム管理者がいて相談しながら作業しているような感覚です。


    SSL化のために実施した作業

    今回実施した主な作業は以下のとおりです。

    1. Apacheの ServerName を設定し、AH00558警告を解消
    2. mod_ssl および mod_rewrite を有効化
    3. Certbot と Let’s Encrypt を導入
    4. DNS設定とApacheのVirtualHost構成を確認
    5. ルーターのポートフォワーディング設定(TCP 80/443)を確認
    6. Let’s EncryptからSSL証明書を取得
    7. Apacheへ証明書を自動設定
    8. HTTPからHTTPSへの自動リダイレクトを設定
    9. WordPressのURL設定をHTTPSへ変更
    10. Microsoft Edgeおよびスマートフォンから接続確認
    11. certbot renew --dry-run による自動更新テストを実施

    実際には、それぞれの設定項目が正しいか確認しながら進める必要があり、「SSL証明書を取得して終わり」というほど単純な作業ではありませんでした。

    特に、自宅サーバー環境ではDNS設定やルーター設定が関係するため、ネットワーク全体を見ながら確認する必要があります。


    結果は大成功

    無事に設定が完了し、現在のサイトは以下の状態で安定運用できています。

    • HTTPSによる暗号化通信
    • HTTPアクセス時のHTTPSへの自動転送
    • Let’s Encrypt証明書の自動更新

    ブラウザのアドレスバーにも鍵マークが表示されるようになり、サイトとしての安心感も大きく向上しました。

    利用者側から見れば小さな変化かもしれませんが、運営者としては達成感のある作業です。


    AIを活用したサーバー運用の可能性

    今回改めて感じたのは、ChatGPTがサーバー運用やシステム設定の強力なサポート役になるということです。

    もちろん最終的な判断や作業は自分で行う必要があります。しかし、

    • エラーメッセージの意味を調べる
    • 設定項目を確認する
    • トラブルの切り分けを行う
    • 作業手順を整理する

    といった場面では非常に心強い存在でした。

    以前のWordPressトラブル解決に続き、今回のSSL化もChatGPTの支援を受けながら無事完了できました。

    自宅サーバーを運用していると、思いもよらない問題に遭遇することがあります。しかし、そのたびに知識を積み重ねながら環境を改善していくのも、自宅サーバー運用の楽しみの一つではないでしょうか。

    今回のSSL化も、その良い経験となりました。もしこれからHTTPS化を検討している方がおられれば、本記事が少しでも参考になれば幸いです。

    投稿日:

    更新日:

  • WordPressサブディレクトリ運用時のトラブルと解決方法

    -ChatGTPの助けを借りて-


    自宅サーバー立ち上げで立ち上げたはずのサーバーがうまく動作しない。具体的には、WordPressインストールディレクトリを公開URLに表示させないようにしたところ、ディレクトリは公開されない設定には成功した。しかし、wordpressの標準でついてるブロックエディタ(Gutenberg)で編集した投稿内容が保存ができない。保存ボタンを押すと保存中のまま進行しない。

    という状況に陥ってしまいました。いくらやっても解決しないので、困ったときのChatGTPだのみです。ChatGPT(GPT-5.5)に調査を依頼し、一緒に原因を一つずつ切り分けていくことにしました。

    数時間にわたり、WordPress・Apache2の設定について順番に確認した結果、原因は、幾つかの設定ミスであったことが判りました。

    同じ症状で困っている方の参考になればと思い、ChatGTPと一緒に解決した方法をまとめました。

    構成

    • OS:Ubuntu 24
    • Webサーバー:Apache2
    • WordPress本体:/var/www/html/****
    • 公開URL:https://kagaku.info
    • WordPressアドレス:https://kagaku.info/****
    • サイトアドレス:https://kagaku.info

    発生した問題

    WordPressのインストールディレクトリを公開URLに表示しない設定後、次の現象が発生しました。

    • ブロックエディタ(Gutenberg)で保存すると「保存中」のまま終了しない
    • https://kagaku.info/wp-json/Not Found
    • パーマリンクを「基本」以外に設定すると記事が Not Found になる

    原因

    1. Apacheの mod_rewrite が無効だったため、WordPressのリライトルールが機能していなかった。
    2. 000-default.confwordpress.conf の2つのVirtualHostが同時に有効になっており、DocumentRoot が競合していた。
    3. 000-default.confAllowOverride All の設定がなく、.htaccess のリライトルールが適用されていなかった。

    解決方法

    1. mod_rewrite を有効化

    sudo a2enmod rewrite
    sudo systemctl restart apache2
    

    2. 000-default.conf を修正

    DocumentRoot/var/www/html とし、次の設定を追加。

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    

    3. wordpress.conf を無効化

    sudo a2dissite wordpress.conf
    sudo systemctl reload apache2
    

    これにより、VirtualHostの競合を解消されました。

    動作確認

    以下を確認し、すべて正常に動作しました。

    • /wp-json/ がJSONを返す
    • パーマリンクが正常に表示される
    • ブロックエディタで保存できる
    • サイトが https://kagaku.info で正常に表示される

    現在の構成

    • 有効なVirtualHost:000-default.conf のみ
    • DocumentRoot/var/www/html
    • WordPress本体:/var/www/html/****
    • ルートの index.php から wordpress/wp-blog-header.php を読み込む構成

    今回のトラブルは複数の要因が重なっていましたが、ChatGTPの力を借りて、一つずつ切り分けて原因を特定できたため、根本的な解決に至りました。今後同様の構成を構築する際にも役立つ手順になると思います。

    投稿日:

    更新日:

  • 自宅サーバー立ち上げ

    「科学のつまみ食い」のサーバーの歴史

    本自宅サーバを再構築しましたので、その経緯についてちょっと書いておきます。
    「科学のつまみ食い」について」に本ホームページの歴史について記載してありますが、時系列のみ繰り返すと、以下の表のような変遷をたどってきました。

    1999年5月外部サーバー(nifty)にて「科学のつまみ食い」を開始
    2002年7月独自ドメインkagaku.infoを取得
    2002年8月自宅サーバー構築:DELL Latitude XP / VineLinux / HTMLエディタ
    外部サーバーから自宅サーバーに移行
    本ドメイン https://kagaku.info/で運用開始 
    2005年7月自宅サーバー入替:同機種/VineLinux/ HomePageBuilder+SiteMan
    2014年9月自宅サーバー入替:Loox P70XN / Vine Linux6.3 / WordPress
    リニューアル移設
    2017年5月自宅サーバー入替:Let’sNote CF-S8 / Vine Linux6.5 / WordPress
    2026年7月自宅サーバー入替:HP ProBook 430 G3 / ubuntu 24 / WordPress
    リニューアル移設

    ここでは今回 2026年の最新の自宅サーバーの入れ替えについて書きとどめておきます。

    もともとWindows11で運用していたHP ProBook 430 G3ですがWindows11ではかなり重くなってきたので、「科学のつまみ食い」で運用することとしました。これまでサーバーとして運用してきたLet’sNote CF-S8 とスペックを比較すると以下のようになります。

    項目Let’s note CF-S8HP ProBook 430 G3
    発売時期2009年2015年
    CPUCore 2 Duo P8700 2.53GHz
    (2コア)
    Core i3-6100U 2.3GHz
    (最大2.8GHz、2コア4スレッド)
    世代差Core 2世代 第6世代 Skylake
    メモリ4GB DDR28GB DDR3L
    ストレージHDDSSD
    画面サイズ12.1インチ WXGA 13.3インチ HD
    解像度1280×800 1366×768
    グラフィックスIntel GM45内蔵GPU Intel HD Graphics 520

    という感じで大幅にスペックアップしています。まぁ、HP ProBook 430 G3も10年前の機種なので最近の機種から見ると劣りますが、サーバーとして使うのには十分だと思ってます。



    サーバー構築

    ということで、ここからサーバー構築のメモです。

    ubuntuのインストール

    まず、準備したHP ProBook 430 G3にubuntuのインストールです。

    Ubuntuを入手する | Ubuntu | Ubuntu から最新版のUbuntuを ダウンロードし、起動メディアをUSB等で作成してインストールします。
    参考になるホームページがネットにあふれているので問題ないと思います。

    ユーザーやルートの設定など一通りします。


    リモートデスクトップ(RDT)

    次に、いちいちノートPCのHP ProBook 430 G3を広げてubuntu等サーバーのメンテをするのは面倒なので、通常のPCからリモートデスクトップ(RDT)で接続できるようにします。以下のホームページが参考になります。

    Ubuntu 24.04 LTSで新しい標準RDP接続を試してみる – treedown’s Report
    第819回 Ubuntu 24.04 LTSのリモートデスクトップを深掘りする | gihyo.jp

    RDTでubuntuサーバーに接続してみると、画面サイズが接続元の画面サイズまで大きくならない。最大でもHP ProBook 430 G3のスペックの1366×768 です。これは寂しい。デスクトップPCでは4Kディスプレイを使用しているので、そこまで画面を広げたい。ということで、以下のホームページを参考にして設定しました。

    Hyper-VでUbuntuを動かす際の解像度設定 #ubuntu20.04 – Qiita
    Hyper-Vで動いているUbuntuの解像度設定|たらかた


    サスペンドさせたくない

    さて、RDTが可能になったら、ノートPCを開く必要はありません。そこで、ノートPCの蓋を閉じてもサスペンドしないようにします。こちらは、以下のホームページを参考にしました。

    【Ubuntu】蓋を閉じてもノートPCをスリープにしない方法 | 機械学習ナビ

    これでサーバーとしての運用準備は整いました。



    WordPress環境の構築

    では次にWordpress環境の構築です。

    WordPressは、投稿、ページ、コメント、カテゴリ、タグ、カスタムフィールド、ユーザー、その他のWordPress設定など、多くの情報をMySQL等のデータベースに保存し、そのデータベースでデータを保存、検索、取得、更新、削除などの操作をPHPからのSQLクエリを通じて実行し、Apache2等のWebサーバーソフトウェアを通してホームページとして公開します。

    従って、これら、WordPressMySQLPHPApache2等をインストールして設定する必要があります。ここでは、それらを含めて順に概要を説明していきます。

    主に以下のホームページを参考にしました。

    Ubuntu 22.04にWordPressをインストールして稼働させるための手順 #Ubuntu22.04 – Qiita
    Ubuntu 22.04 LTS に WordPress 7.4 をインストール #mariadb – Qiita
    【備忘録】Ubuntu22.04 で WordPress導入 – おりそ.doc
    Ubuntu で WordPress のインストール|金子邦彦研究室
    自宅サーバでWordPressを動かそう。インストール | じじぃの引出し

    探せばまだまだ出てきますので、各自わかりやすいのを参考にするのが良いと思います。


    Apache2のインストール

    まず、Apache2をインストールします。

    Apache2のインストール手順 #Ubuntu – Qiita


    PHPのインストール

    次にPHPをインストールします。

    【備忘録】Ubuntu22.04 で WordPress導入 – おりそ.doc

    次にphpの設定内容を確認するために以下のページを参考にphp.iniを編集しphpinfo.phpを作成します。

    php.ini完全ガイド|設定ファイルの場所から編集方法まで徹底解説 | ちょげぶろぐ
    PHP | php.iniファイルの作成と初期設定

    一応、このサーバーでは、以下のように設定しています。

    memory_limit = 128M    → memory_limit = 256M
    post_max_size = 8M    → post_max_size = 64M
    upload_max_filesize = 2M → upload_max_filesize = 32M
    allow_url_fopen = On    → allow_url_fopen = Off
                  → date.timezone = “Asia/Tokyo”


    MySQLのインストール

    ではデータベースの以下のホームページを参考に
    MySQLをインストールします。

    【備忘録】Ubuntu22.04 で WordPress導入 – おりそ.doc

    次に以下を参考に
    mysql_secure_installationコマンドを利用してMySQLの初期設定を行います。

    MySQL 8.0 インストール後に必ず設定する 3の項目 | りんか ネット

    初期設定が終わったら、以下を参考に
    WordPress用のデータベースとユーザーを作成します。

    Ubuntu 22.04にWordPressをインストールして稼働させるための手順 #Ubuntu22.04 – Qiita

    これで、MySQLのインストールと設定が終わりました。


    WordPressのインストール

    さて、ようやくWordPressのインストールです。
    WordPressのインストール方法は、冒頭に示した以下のホームページが参考になると思いますので再掲しておきます。。

    Ubuntu 22.04にWordPressをインストールして稼働させるための手順 #Ubuntu22.04 – Qiita
    Ubuntu 22.04 LTS に WordPress 7.4 をインストール #mariadb – Qiita
    【備忘録】Ubuntu22.04 で WordPress導入 – おりそ.doc
    Ubuntu で WordPress のインストール|金子邦彦研究室
    自宅サーバでWordPressを動かそう。インストール | じじぃの引出し

    ここでちょっと…
    WordPressをインストールしたディレクトリにはwww-dataというユーザー名とグループ名のディレクトリやファイルができます。で、これ何?って思って調べてみると以下の通りでした。

    www-data とは何か? – tech-hint

    で次に以下のホームページを参考にして
    WordPressの初期設定をします。

    【備忘録】Ubuntu22.04 で WordPress導入 – おりそ.doc

    これで一応、設定完了


    サブディレクトリをURLに表示しない

    WordPressをhtml/以下のサブディレクトリ(例えば、****)に設置すると、そのサブディレクトリ名がURL上に表示されます。例えば、この「科学のつまみ食い」だと https://kagaku.info/****/ 等と表示されてしまいます。これはちょっといただけないので、以下のホームページを参考に https://kagaku.info/ と表示させます。

    【WordPress】サブディレクトリをURLに表示しない方法

    さてこれで出来上がり!!

    参考になったでしょうか?

    で、実はここで問題が発生しました。
    ChatGTPの力を借りて、解決しました。
    解決方法は、WordPressサブディレクトリ運用時のトラブルと解決方法を参考にしてください。



    先人たちの多くの記録が今回のサーバー立ち上げに大変役に立ちました。ここで引用した多くのホームページを参考にさせていただきました。ありがとうございました。

    投稿日:

    更新日: