【連載最終回】さらばIPアドレス!独自ドメインと無料SSLで「本物のWebサイト」へ

LAMP講座

【連載最終回】あなたのアプリが「世界」と繋がる日

未経験からWebアプリ開発を目指す「AlmaLinux 9とLAMP環境で作る!Webアプリ開発完全ロードマップ(全12回)」の最終回です。

長い旅でしたね。
第1回で真っ黒な画面(ターミナル)に怯えながらコマンドを打ち始め、Apacheを入れ、データベースと格闘し、PHPコードを書き、セキュリティ対策を施し…。
今のあなたの手元には、自分の手でゼロから作り上げた「動くWeb掲示板」があります。

しかし、まだ一つだけ「プロの仕事」とは言えない部分があります。
それは、URLが「IPアドレス(123.456.78.90)」のままであること、そして「保護されていない通信(http)」であることです。

最終回となる今回は、あなたのアプリに「独自ドメイン(.comなど)」という名前を与え、さらに「無料SSL(https)」を導入して、誰に見せても恥ずかしくない「本物のWebサイト」として完成させます。

コウ君

先生、ついに最終回ですね!
友達にURLを送ろうとしたら「怪しい数字のリンクだから踏みたくない」って言われちゃいました…。
やっぱり「.com」とかじゃないと信用されませんよね。

リナックス先生

その通りよ。
IPアドレスのまま公開しているWebサービスなんて世界中どこにもないわ。
それに、今はブラウザの鍵マーク(SSL)がないと、GoogleChromeから「危険なサイト」扱いされて警告画面が出ることさえあるの。
最後の大仕事、きっちり仕上げて卒業しましょう!

本講座のカリキュラム(全12回)

現在地は第12回(最終回)です。完走おめでとうございます!

  1. サーバー準備編:なぜVPSが必要?AlmaLinux 9の初期設定とSSH接続
  2. Webサーバー編:Apache(httpd)のインストールとファイアウォール設定
  3. データベース編:MariaDB(MySQL)のインストールとセキュリティ設定
  4. プログラミング言語編:PHP 8.xの導入と設定ファイルのチューニング
  5. 権限・パーミッション編:LinuxでWebサイトを公開するための「所有者」の概念
  6. 接続テスト編:PHPからデータベース(DB)に接続してみよう
  7. アプリ開発①:HTML/CSSで掲示板の「見た目」を作る
  8. アプリ開発②:投稿機能(Create)の実装とデータの保存
  9. アプリ開発③:一覧表示機能(Read)と画像表示の仕組み
  10. アプリ開発④:編集・削除機能(Update/Delete)の実装
  11. セキュリティ編:XSSやSQLインジェクション対策の基礎
  12. 【今回】公開編:独自ドメイン設定と無料SSL(Let’s Encrypt)でHTTPS化

ドメインとDNSの仕組みを理解しよう

作業に入る前に、「なぜドメインでアクセスできるのか」という仕組みを簡単に理解しておきましょう。
これを理解していないと、設定がうまくいかない時に原因が特定できません。

IPアドレスとドメインの関係

  • IPアドレス(123.456.78.90):
    インターネット上の「住所(緯度・経度)」です。コンピューターにとっては分かりやすいですが、人間には覚えにくい数字の羅列です。
  • ドメイン(example.com):
    インターネット上の「表札(名前)」です。人間にとって覚えやすい文字列です。

Webブラウザに「example.com」と入力すると、裏側では「DNS(ドメイン・ネーム・システム)」という電話帳のようなサーバーに問い合わせが行われます。
「ねえ、example.comってどこのIPアドレス?」→「それは123.456.78.90だよ」
この変換作業(名前解決)のおかげで、私たちはドメインを使ってあなたのVPSにたどり着けるのです。

手順1:独自ドメインを取得する

まずは、自分だけのドメインを手に入れる必要があります。
「お名前.com」や「Xserverドメイン」、「ConoHa」などのドメイン登録サービスで、好きな文字列(例:kou-bbs.com)を検索して取得してください。
(※ドメイン取得には年間1,000円〜数千円程度の費用がかかりますが、キャンペーンで初年度1円などの場合もあります)

注意: VPSを契約している会社と同じ会社でドメインを取ると、設定が楽になることが多いのでおすすめです。

手順2:DNS設定(Aレコード)を行う

ドメインを取っただけでは、まだあなたのVPSとは繋がっていません。
ドメイン管理画面(お名前.comなどの管理画面)で、「このドメインは、このVPSのIPアドレスだよ」という紐付け設定を行う必要があります。

これを「DNSレコード設定(Aレコード)」と呼びます。

ホスト名 種別 値(内容)
@(空欄) A あなたのVPSのIPアドレス
www A あなたのVPSのIPアドレス

この設定を行うと、世界中のDNSサーバーに情報が伝播(浸透)していきます。
完全に反映されるまで、数十分〜最大24時間かかることがあります。
焦らず待ちましょう。

繋がったか確認する方法

自分のPCのコマンドプロンプト(またはターミナル)で、以下のコマンドを打ってみてください。

ping あなたのドメイン.com

返ってくる結果に、あなたのVPSのIPアドレスが表示されれば、紐付けは完了しています。

手順3:Apacheの設定(バーチャルホスト)

ドメインでアクセスできるようになったら、今度はサーバー側(Apache)の設定です。
「IPアドレスで来たアクセス」ではなく「ドメイン名で来たアクセス」を正しく処理できるようにします。

SSHでVPSに接続し、設定ファイルを作成します。

vi /etc/httpd/conf.d/vhost.conf

中身に以下を記述してください。
example.com の部分は、あなたが取得した実際のドメインに書き換えてください!)

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/html/bbs
    
    <Directory "/var/www/html/bbs">
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

解説

  • ServerName : この設定を適用するドメイン名です。
  • DocumentRoot : ドメインにアクセスした時に表示させるフォルダの場所です。
    これまでは /var/www/html がトップでしたが、今回は掲示板アプリがある /var/www/html/bbs をトップに設定しました。
    これで、http://example.com/ にアクセスするだけで、いきなり掲示板が表示されるようになります。

書き換えたら保存し、Apacheを再起動します。

systemctl restart httpd

ブラウザで http://あなたのドメイン.com にアクセスし、掲示板が表示されれば成功です!
(※まだ鍵マークはつきません)

手順4:無料SSL(Let’s Encrypt)の導入

いよいよラストスパートです。
通信を暗号化し、ブラウザに「安全な接続」と表示させるための「SSL証明書」をインストールします。

昔は年間数万円もする高価なものでしたが、今は「Let’s Encrypt(レッツ・エンクリプト)」という非営利団体のおかげで、誰でも無料で、しかもコマンド一発で導入できるようになりました。

1. certbotのインストール

Let’s Encryptを自動設定してくれるツール「certbot(サートボット)」を入れます。

dnf install epel-release -y
dnf install certbot python3-certbot-apache -y

2. 証明書の取得と設定

以下のコマンドを実行するだけで、魔法のように全ての設定が完了します。
(※途中でメールアドレスの入力や、規約への同意を求められます)

certbot --apache

コマンドの最後の方で、以下のような質問が表示されることがあります。

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
(httpへのアクセスを、自動的にhttpsへ転送しますか?)
1: No redirect
2: Redirect

ここでは迷わず 2 を選んでください。
これにより、「http://〜」でアクセスしてきても、強制的に安全な「https://〜」に飛ばされるようになります(常時SSL化)。

最終確認:鍵マークがついたか?

ブラウザで http://あなたのドメイン.com (あえてhttpで)にアクセスしてみてください。

一瞬で https://... に切り替わり、アドレスバーの横に「🔒(鍵マーク)」が表示されましたか?

コウ君

つきました!鍵マーク!
なんか一気に「ちゃんとしたサイト」に見えます!
これでもう「怪しいサイト」なんて言わせません!

リナックス先生

おめでとう、コウ君!
これで全てのカリキュラムが修了よ。
あなたのサーバー構築スキルとプログラミングスキルは、もう立派な「エンジニアの卵」レベルに達しているわ。

補足:証明書の自動更新について

Let’s Encryptの証明書は、有効期限が「90日間」と短めです。
放っておくと3ヶ月後に期限切れで警告が出てしまいますが、心配はいりません。
certbot をインストールした時点で、裏側で自動更新のタイマー(systemd timer)がセットされています。

確認コマンド:

systemctl list-timers | grep certbot

これさえ動いていれば、あなたは今後、証明書の更新作業を一切気にする必要はありません。

全12回の総括と、これから学ぶべきこと

約3ヶ月(想定)にわたる連載、本当にお疲れ様でした。
最後に、これまでの道のりを振り返り、これからさらに上を目指すためのロードマップを示して締めくくりたいと思います。

あなたが身につけたスキル

  • Linuxサーバー構築: 黒い画面への恐怖を克服し、VPSを自由に操れるようになりました。
  • LAMP環境の理解: Linux, Apache, MariaDB, PHPがどう連携して動いているか、体感で理解しました。
  • CRUDアプリ開発: データの作成・表示・更新・削除という、全てのアプリの基礎を作れるようになりました。
  • セキュリティ意識: SQLインジェクションやXSS、CSRFといった脅威から身を守る術を学びました。

次のステップへ

この講座を終えたあなたは、もはや「初心者」ではありません。
次のステップとして、以下のような技術に挑戦してみることをおすすめします。

  • フレームワーク(Laravel): 今回は「生のPHP」で書きましたが、現場では「Laravel(ララベル)」などのフレームワークを使うのが一般的です。開発スピードが爆上がりします。
  • バージョン管理(Git/GitHub): プログラムの変更履歴を保存し、チーム開発をするための必須ツールです。
  • クラウド(AWS/Google Cloud): VPSの次は、より大規模なクラウドインフラの世界が待っています。

技術の道に終わりはありませんが、最初の、そして最も険しい山は越えました。
このサイト「Linux工房」では、これからも実践的な技術情報を発信していきます。
困った時はいつでも戻ってきてくださいね。

それでは、良きエンジニアライフを!
Happy Hacking!

リナックス先生

もし周りに「プログラミング始めたいけど何からやればいい?」って迷っている人がいたら、この講座を教えてあげてね。
あなたが教える側に回ることで、知識はより深く定着するわよ。
長い間、本当にお疲れ様でした!

▼エンジニアとしての第一歩はここから(推奨VPS)

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント