ラズパイで作る自宅WEBサーバ:Apache編
第7回 認証サーバ設定

2026.11.13
SSLを利用するため、mod_ssl をインストールし、有効化します。
$ sudo apt install ssl-cert
$ sudo a2enmod ssl
秘密鍵 と SSLサーバ証明書(必要に応じて 中間CA証明書)を用意し、/etc/ssl に配置します。
/etc/ssl/certs の下にある大量のファイルはシステム全体で信頼されている認証局(CA)のルート証明書であり、
絶対に削除してはいけません。非常に重要で必要なファイルです。
●証明書の取得
秘密鍵とサーバ証明書の取得は、Certbotで行うのですが、テスト用の余分なドメインがありません。
そこで、ラズパイで作る自宅WEBサーバ:nginx編
第7回 認証サーバ設定
で取得した秘密鍵とサーバ証明書を流用します。
SSL用の設定ファイルを開き、以下のディレクティブを設定します。
$ sudo vi /etc/apache2/sites-available/default-ssl.conf
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName example.com
DocumentRoot /example/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/fullchain.pem
SSLCertificateKeyFile /etc/ssl/private/privkey.pem
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
ServerName sub1.example.com
DocumentRoot /example/www/sub1
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/fullchain.pem
SSLCertificateKeyFile /etc/ssl/private/privkey.pem
Alias /share/ "/example/www/share//"
<Directory "/example/www/share/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
<FilesMatch "\.(?:cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
下記はサブドメインのドキュメントルートに配置されていない画像などの共有ファイルを参照できるようにしています。
Alias /share/ "/example/www/share//"
<Directory "/example/www/share/">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
設定ファイルの構文をチェックします
$ sudo /usr/sbin/apachectl configtest
Syntax OK
サイト設定を有効化します
$ sudo a2ensite default-ssl
Enabling site default-ssl.
To activate the new configuration, you need to run:
systemctl reload apache2
開いているポートを確認します
$ sudo nmap localhost
Starting Nmap 7.94SVN ( https://nmap.org ) at 2026-11-03 21:15 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000067s latency).
Other addresses for localhost (not scanned): ::1
Not shown: 995 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
443/tcp open https
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds
$ sudo systemctl reload apache2
($ sudo /etc/init.d/apache2 restart)
以下のコマンドで443またはhttpd/apacheを使っているプロセスを確認します。
$ sudo lsof -i :443
不要なプロセスがある場合は停止するか、PIDを指定して強制終了します。
$ sudo kill -9 <PID>
|