Ubuntu12.04のnginxでSSL証明書を作成する方法
ステータス:非推奨
この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.
代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他の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サーバーをインストールできます。