0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntu + Apache2.4 で 443 ポート以外で SSL 通信(https)を有効化する方法

Last updated at Posted at 2023-09-21

はじめに

今回は、Ubuntu の Apache2 で https の通信を 443 以外の通信ポート(例えばポート 443 を許さずポート 8443 でアクセスできるようにする)で Web サーバにアクセスできるようにするやり方を紹介します。

前回記事 Ubuntu 20.04LTS の Apache + Flask で Let's Encrypt の SAN 証明書を作成・更新する話(更新できなかった問題を解決) と同じです。

前提として、80 ポートと 443 ポートを用いて SSL 証明書を Let's Encrypt で取得した後の話となります(ですので、SSLCertificateFile や SSLCertificateKeyFile の .pem ファイルはすでに VirtualHost の 443 の部分に記述されている前提となります)。

環境・バージョン等

Ubuntu / Apache2 バージョン

$ cat /etc/issue
Ubuntu 20.04.6 LTS \n \l

$ apache2 -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2023-03-08T17:32:54

Web サーバ IP アドレス

172.20.30.40

Web サーバドメイン

abc.example.comwww.abc.example.com

手順

  1. /etc/apache2/sites-availableabc.example.com.conf ファイルを作成する。
  2. 以下のように abc.example.com.conf ファイルを記述する。
    具体的には、<VirtualHost 172.20.30.40:443> と同じ内容で <VirtualHost 172.20.30.40:8443> を記述する。
    /etc/apache2/sites-available/abc.example.com.conf
    <VirtualHost 172.20.30.40:80>
    	ServerAdmin webmaster@localhost
    	DocumentRoot /var/www/html
    	
    	ServerName abc.example.com
    	ServerAlias www.abc.example.com
    	DocumentRoot /var/www/html
    	ServerAdmin hoge@hoge.ac.jp
    	<Directory /var/www/html>
    	Options FollowSymLinks
    	AllowOverride All
    	AddType text/html .html
    	AddType text/html .html
    	Require all granted
    	 </Directory>
    	ErrorLog ${APACHE_LOG_DIR}/error.log
    	CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    </VirtualHost>
    <IfModule mod_ssl.c>
    	<VirtualHost 172.20.30.40:443>
    		ServerAdmin webmaster@localhost
    
    		DocumentRoot /var/www/html
    		ServerAdmin hoge@hoge.ac.jp
         
    		DocumentRoot /var/www/html
    		<Directory /home/www/html>
    		Options FollowSymLinks
    		AllowOverride All
    		AddType text/html .html
    		AddType text/html .htm
    		Require all granted
    		</Directory>
    		
    		ErrorLog ${APACHE_LOG_DIR}/error.log
    		CustomLog ${APACHE_LOG_DIR}/access.log combined
    		SSLEngine on
    		<FilesMatch "\.(cgi|shtml|phtml|php)$">
    				SSLOptions +StdEnvVars
    		</FilesMatch>
    		<Directory /usr/lib/cgi-bin>
    				SSLOptions +StdEnvVars
    		</Directory>
    		ServerName	abc.example.com
    		ServerAlias www.abc.example.com
    
    		Include /etc/letsencrypt/options-ssl-apache.conf
    		SSLCertificateFile /etc/letsencrypt/live/abc.example.com/fullchain.pem
    		SSLCertificateKeyFile /etc/letsencrypt/live/abc.example.com/privkey.pem
    	</VirtualHost>
    	<VirtualHost 172.20.30.40:8443>
    		ServerAdmin webmaster@localhost
    
    		DocumentRoot /var/www/html
    		ServerAdmin hoge@hoge.ac.jp
         
    		DocumentRoot /var/www/html
    		<Directory /home/www/html>
    		Options FollowSymLinks
    		AllowOverride All
    		AddType text/html .html
    		AddType text/html .htm
    		Require all granted
    		</Directory>
    
    		ErrorLog ${APACHE_LOG_DIR}/error.log
    		CustomLog ${APACHE_LOG_DIR}/access.log combined
    
    		<Proxy *>
            	Require all granted
            </Proxy>
    
            ProxyRequests Off
            ProxyPreserveHost On
    		SSLProxyEngine on
    		SSLEngine on
    
    		<FilesMatch "\.(cgi|shtml|phtml|php)$">
    				SSLOptions +StdEnvVars
    		</FilesMatch>
    		<Directory /usr/lib/cgi-bin>
    				SSLOptions +StdEnvVars
    		</Directory>
    
    
    		ServerName	abc.example.com
    		ServerAlias www.abc.example.com
    		Include /etc/letsencrypt/options-ssl-apache.conf
    		SSLCertificateFile /etc/letsencrypt/live/abc.example.com/fullchain.pem
    		SSLCertificateKeyFile /etc/letsencrypt/live/abc.example.com/privkey.pem
    	</VirtualHost>
    </IfModule>
    
    
  3. (任意)ポート 443 での接続を禁止する場合は、<VirtualHost 172.20.30.40:443> の部分を削除(やコメントアウト)する。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?