メインコンテンツまでスキップ

Apache2サーバーへのSSL証明書のインストール

ApacheサーバーにSSL証明書をインストールすることで、ApacheサーバーがHTTPSによる安全なアクセスに対応するようになります。この文書では、ApacheサーバーにSSL証明書をインストールする方法について説明します。

説明

このドキュメントではApacheバージョンを Apache/2.4.58(ubuntu) として例示します。 インストール前に443ポートが使用されていないことを確認してください。443ポートが既に使用されている場合は、証明書のインストール時に他のポートをバインドしてください。

証明書の取得

  1. 証明書が発行されると、証明書ファイル(.zip)の圧縮形式で提供されます。圧縮パッケージ内にはTomcat、Nginx、IIS、Apacheの4つの証明書形式に対応する4つのフォルダがあり、ApacheサーバーではApacheフォルダ内の証明書を使用します。
  2. Apacheフォルダ内には以下の3つのファイルが含まれます。
  • domain_com.crt 証明書ファイル
  • domain_com.key 秘密鍵ファイル
  • domain_com.ca-bundle 証明書チェーンファイル

SSL証明書のインストール

  1. 取得した domain_com.crt 証明書ファイル、domain_com.key 秘密鍵ファイル、domain_com.ca-bundle 証明書チェーンファイルをローカルディレクトリからApacheサーバーの /etc/apache2/ssl ディレクトリにコピーします。 説明:
  • /etc/apache2/ssl ディレクトリが存在しない場合は、mkdir -p /etc/apache2/ssl コマンドで作成できます
  • バージョンによって異なる場合があり、Apacheのディレクトリが /etc/httpd になっていることもあります
  1. Apacheは sites-enabled 内の設定ファイルのみを読み込むため、シンボリックリンクを設定する必要があります
ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/000-default-ssl.conf
  1. /etc/apache2/sites-available/default-ssl.conf ファイルを編集し、以下の内容を変更します:
<VirtualHost *:443>
DocumentRoot /var/www/html
#启用 SSL 功能
SSLEngine on
#证书文件的路径
SSLCertificateFile /etc/apache2/ssl/domain_com.crt
#私钥文件的路径
SSLCertificateKeyFile /etc/apache2/ssl/domain_com.key
#证书链文件的路径
SSLCertificateChainFile /etc/apache2/ssl/domain_com.ca-bundle
</VirtualHost>

変更後に設定ファイルを保存し、以下のコマンドを実行してください:

a2enmod ssl       #加载ssl模块,如果是替换证书可以忽略
apache2ctl configtest #检测配置文件是否报错
apache2ctl restart #重启Apache使配置生效

SSL証明書のテスト

ブラウザのアドレスバーにSSL証明書をバインドしたドメインを入力し、SSL証明書が正常にインストールされたかどうかをテストしてください。正常にインストールされている場合、ブラウザのアドレスバーに南京錠のセキュリティアイコンが表示され、クリックすると証明書情報を確認できます。

SSL証明書の表示例

HTTPからHTTPSへの自動リダイレクトのセキュリティ設定(任意)

HTTPリクエストをHTTPSに自動的にリダイレクトする必要がある場合は、以下の手順で設定できます:

  1. コマンドラインに a2enmod rewrite を入力してリダイレクトモジュールを有効化します
  2. 次にhttp設定ファイルを開きます。例:/etc/apache2/sites-available/000-default.conf 。設定ファイルに以下の内容を追加してください:
<VirtualHost *:80>
# 新增
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
</VirtualHost>
  1. Apacheサーバーを再起動すると、ドメイン名でアクセスできるようになり、HTTPからHTTPSへの自動リダイレクトが実現されます。