インターネットにはオープンしない linux サーバーの ssl 設定
設定する手順を
日本語で初学者にもわかりやすいように
具体的なコード、コマンドライン、注意事項を加えて
ステップバイで解説してください
既存の Virtualhost の設定変更が必要な場合はこの手順も別途解説してください
前提:
linux mint
ip アドレス 192.168.0.50 255.255.255.0
apache2 documentROOT /var/www/html/
mysql
php
laravel
wordpress
Linux Mint 上の Apache2 サーバーに SSL を設定する手順
前提条件
- IP アドレス: 192.168.0.50
- Apache2 ドキュメントルート: /var/www/html
- Apache2, MySQL, PHP, Laravel, WordPress がインストール済み
手順
1. Apache2 のインストールと確認
まず、Apache2 がインストールされているか確認します。インストールされていない場合は以下のコマンドでインストールします。
sudo apt update
sudo apt install apache22. SSL モジュールの有効化
Apache2 の SSL モジュールを有効にします。
sudo a2enmod ssl
sudo systemctl restart apache23. SSL 証明書の作成
自己署名証明書を作成します。以下のコマンドを実行します。
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crtコマンド実行中にいくつかの質問が表示されますが、適宜入力してください。
4. SSL 設定ファイルの作成
default-ssl.conf ファイルを作成します。
sudo nano /etc/apache2/sites-available/default-ssl.conf以下の内容を追加します。
<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        SSLEngine on
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
            SSLOptions +StdEnvVars
        </Directory>
        <Directory /var/www/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        BrowserMatch "MSIE [2-6]" \
            nokeepalive ssl-unclean-shutdown \
            downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
</IfModule>5. SSL サイトの有効化
作成した SSL サイトを有効にします。
sudo a2ensite default-ssl
sudo systemctl reload apache26. Apache2 のポート設定確認
Apache2 がポート 443 をリッスンしているか確認します。
sudo nano /etc/apache2/ports.conf以下の行が含まれていることを確認してください。
Listen 80
<IfModule ssl_module>
    Listen 443
</IfModule>
<IfModule mod_gnutls.c>
    Listen 443
</IfModule>7. Apache2 の再起動
Apache2 を再起動して設定を反映させます。
sudo systemctl restart apache28. ファイアウォールの設定
ファイアウォールが有効な場合、HTTPS トラフィックを許可します。
sudo ufw allow 'Apache Full'9. 動作確認
ブラウザを開き、以下の URL にアクセスします。
https://192.168.0.50自己署名証明書を使用しているため、ブラウザに警告が表示されることがありますが、これは正常です。警告を無視して続行してください。
また、ターミナルから cURL コマンドを使用して HTTPS 接続を確認します。
curl -k https://192.168.0.50まとめ
これで、Linux Mint 上の Apache2 サーバーに SSL を設定する手順は完了です。Laravel や WordPress の設定は、通常の HTTP と同様に動作しますが、HTTPS に対応するために URL の設定を変更する必要がある場合があります。
3 種類のライセンスで類似のコードが見つかりました
iyo.conf
ファイルを SSL 対応の VirtualHost に変更するためには、以下のように設定を追加します。
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName iyo.local
    DocumentRoot /var/www/html/iyo
    <Directory /var/www/html/iyo>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/iyo_error.log
    CustomLog ${APACHE_LOG_DIR}/iyo_access.log combined
    LogLevel debug
    # Redirect HTTP to HTTPS
    RewriteEngine on
    RewriteCond %{SERVER_NAME} =iyo.local
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
<VirtualHost *:443>
    ServerAdmin webmaster@localhost
    ServerName iyo.local
    DocumentRoot /var/www/html/iyo
    <Directory /var/www/html/iyo>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/iyo_error.log
    CustomLog ${APACHE_LOG_DIR}/iyo_access.log combined
    LogLevel debug
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
    SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
    # Adjust the paths to your SSL certificate and key files as needed
</VirtualHost>この設定では、HTTP リクエストを HTTPS にリダイレクトし、ポート 443 で SSL を有効にしています。SSL 証明書とキーのパスは適宜変更してください。
iyo.conf
の VirtualHost を有効にするためには、以下のコマンドを実行します。
sudo a2ensite iyo.conf
sudo systemctl reload apache2これにより、iyo.confが有効になり、Apache が設定を再読み込みします。
 
                    
コメントを残す
コメントを投稿するにはログインしてください。