ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由: Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。 このガイドはもう維持されていません。

代わりに参照してください:
このガイドは参考として役立つかもしれませんが、他のUbuntuリリースでは機能しない可能性があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

自己署名証明書について

SSL証明書は、サイトの情報を暗号化し、より安全な接続を作成する方法です。 さらに、証明書は、仮想プライベートサーバーの識別情報をサイト訪問者に示すことができます。 認証局は、サーバーの詳細を検証するSSL証明書を発行できますが、自己署名証明書にはサードパーティによる確証はありません。

設定

このチュートリアルの手順では、ユーザーがroot権限を持っている必要があります。 これを設定する方法は、手順3と4の初期サーバー設定チュートリアルで確認できます。

さらに、nginxがVPSにインストールされ、実行されている必要があります。 そうでない場合は、次のコマンドでダウンロードできます。

sudo apt-get install nginx

ステップ1-証明書のディレクトリを作成する

SSL証明書には、証明書自体と公開鍵の2つの主要部分があります。 関連するすべてのファイルに簡単にアクセスできるようにするには、それらを保存するディレクトリを作成する必要があります。

 sudo mkdir /etc/nginx/ssl

ディレクトリ内で次のいくつかの手順を実行します。

 cd /etc/nginx/ssl

ステップ2—サーバーキーと証明書署名要求を作成します

秘密サーバーキーを作成することから始めます。 このプロセス中に、特定のパスフレーズを入力するように求められます。 このフレーズを忘れたり紛失したりすると、証明書にアクセスできなくなりますので、注意してください。

sudo openssl genrsa -des3 -out server.key 2048

証明書署名要求を作成してフォローアップします。

sudo openssl req -new -key server.key -out server.csr

このコマンドは、入力する必要のあるフィールドのリストを表示するように端末に指示します。

最も重要な行は「共通名」です。 ここに公式ドメイン名を入力するか、まだ持っていない場合はサイトのIPアドレスを入力します。 チャレンジパスワードとオプションの会社名は空白のままにします。

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:New York
Locality Name (eg, city) []:NYC
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Awesome Inc
Organizational Unit Name (eg, section) []:Dept of Merriment
Common Name (e.g. server FQDN or YOUR name) []:example.com                  
Email Address []:[email protected]

ステップ3—パスフレーズを削除する

証明書の作成はほぼ完了です。 ただし、パスフレーズを削除することはできます。 パスフレーズを設定するとセキュリティが強化されますが、nginxをリロードしようとすると問題が発生します。 nginxがクラッシュしたり、再起動する必要がある場合は、常にパスフレーズを再入力して、Webサーバー全体をオンラインに戻す必要があります。

パスワードを削除するには、次のコマンドを使用します。

sudo cp server.key server.key.org
sudo openssl rsa -in server.key.org -out server.key

ステップ4—SSL証明書に署名する

証明書はほとんど完成しており、署名するだけです。 365を希望の日数に変更することで、証明書の有効期間を指定できることに注意してください。 現状では、この証明書は1年後に期限切れになります。

 sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

これで証明書の作成は完了です。

ステップ5—証明書を設定する

これで、完成した証明書に必要なすべてのコンポーネントが揃いました。次に行うことは、新しい証明書を表示するように仮想ホストを設定することです。

標準の仮想ホストファイルと同じデフォルトのテキストとレイアウトで新しいファイルを作成しましょう。 コマンドの「example」は、任意の名前に置き換えることができます。

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/example

次に、先に進んでその新しいファイルを開きます。

 sudo nano /etc/nginx/sites-available/example

ファイルの一番下までスクロールして、これで始まるセクションを見つけます。

# HTTPS server

server {
        listen 443;
        server_name example.com;

        root /usr/share/nginx/www;
        index index.html index.htm;

        ssl on;
        ssl_certificate /etc/nginx/ssl/server.crt;
        ssl_certificate_key /etc/nginx/ssl/server.key; 
}

HTTPSサーバーの行の下のセクション内のコメントを解除します。 設定を上記の情報と一致させ、「server_name」行のexample.comをドメイン名またはIPアドレスに置き換えます。 続いて、サイトの正しいディレクトリを追加します(上記の構成にはデフォルトのnginxページが含まれています)。

さらに、次のようなファイルの先頭に向かって、これらの行の両方がコメントアウトされていることを確認してください。

# Make site accessible from http://localhost/
# server_name localhost;

ステップ6—仮想ホストをアクティブ化する

最後のステップは、sites-availableディレクトリとsites-enabledディレクトリの間にシンボリックリンクを作成してホストをアクティブ化することです。

 sudo ln -s /etc/nginx/sites-available/example /etc/nginx/sites-enabled/example

次に、nginxを再起動します。

 sudo service nginx restart

https://youraddressにアクセスします

そのページに自己署名証明書が表示されます。

続きを見る

サイトでSSL証明書を設定したら、まだ行っていない場合はFTPサーバーをインストールすることができます。

資力

EtelSverdlov著