web-dev-qa-db-ja.com

UbuntuのlocalhostにSSLをインストールするにはどうすればよいですか?

実稼働サーバーで直接作業できないため、Ubuntu環境のlocalhostにSSL証明書をインストールしたい。ページがHTTPであるかHTTPSであるかに基づいて、コードにいくつかの条件を追加する必要があります。

これどうやってするの?

26
Ritesh

次のように入力して、Apacheモジュールを有効にします。

Sudo a2enmod ssl

SSLを有効にした後、変更を認識させるためにWebサーバーを再起動する必要があります。

Sudo service Apache2 restart

まず、Apacheの構成階層内にサブディレクトリを作成して、作成する証明書ファイルを配置します。

Sudo mkdir /etc/Apache2/ssl

キーと証明書を配置する場所ができたので、次のように入力して、1つの手順で両方を作成できます。

Sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/Apache2/ssl/Apache.key -out /etc/Apache2/ssl/Apache.crt

質問の部分は次のようになります。

Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:New York City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Your Company
Organizational Unit Name (eg, section) []:Department of Kittens
Common Name (e.g. server FQDN or YOUR name) []:your_domain.com
Email Address []:[email protected]

今すぐルート権限でファイルを開きます:

Sudo nano /etc/Apache2/sites-available/default-ssl.conf

コメントを削除すると、ファイルは次のようになります。

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${Apache_LOG_DIR}/error.log
        CustomLog ${Apache_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
                        SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /usr/lib/cgi-bin>
                        SSLOptions +StdEnvVars
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
</IfModule>

最終的には、このようになります。エントリは元のファイルから変更されました。

<IfModule mod_ssl.c>
    <VirtualHost _default_:443>
        ServerAdmin [email protected]
        ServerName your_domain.com
        ServerAlias www.your_domain.com
        DocumentRoot /var/www/html
        ErrorLog ${Apache_LOG_DIR}/error.log
        CustomLog ${Apache_LOG_DIR}/access.log combined
        SSLEngine on
        SSLCertificateFile /etc/Apache2/ssl/Apache.crt
        SSLCertificateKeyFile /etc/Apache2/ssl/Apache.key
        <FilesMatch "\.(cgi|shtml|phtml|php)$">
            SSLOptions +StdEnvVars
        </FilesMatch>
        <Directory /var/www/html>
            SSLOptions +StdEnvVars
            DirectoryIndex index.php
            AllowOverride All
            Order allow,deny
            Allow from all
        </Directory>
        BrowserMatch "MSIE [2-6]" \
                        nokeepalive ssl-unclean-shutdown \
                        downgrade-1.0 force-response-1.0
        BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
    </VirtualHost>
</IfModule>

完了したら、ファイルを保存して終了します。 SSL対応の仮想ホストを構成したので、それを有効にする必要があります。

Sudo a2ensite default-ssl.conf

次に、Apacheを再起動して新しい仮想ホストファイルをロードする必要があります。

Sudo service Apache2 restart

これで、https .. !!でサイトを実行できるようになりました。

81
Ritesh