\r\n\r\n
SSL対応ウェブサイトの重要性はますます高まっています。 GoogleはHTTPSアドレスをHTTPアドレスより上位にランク付けし、HTTPが履歴に委ねられるまで継続するように設定しています。
ここでは、SSL証明書を素早く生成し、数分であなたのウェブサイトに無料で実装する方法をご紹介します。
人気の高い無料のSSL認証局であるLet's Encryptのおかげで、WebサイトにSSLを設定するのがこれまでになく簡単になりました。
2016年4月に設立されたLet's Encryptは、同社のcertbotスクリプトと、それが無料サービスであることから、オンライン開発の分野で人気を博しています。
この記事は、すでにLinuxのWebサーバーとSSLを追加するドメイン名をお持ちであることを前提にしています。SSHでサーバーに接続し、以下のコマンドでcertbotがインストールされていることを確認します。
sudo certbot --versionバージョン番号が表示されていれば、certbotはすでにインストールされていますので、次のセクションに進んでください。それ以外の場合は、以下のコマンドでcertbotをインストールすることができます。
sudo apt-get -y install certbotこの記事がすべてのサーバーに適用されるように、まず、適切なコマンドを使用して既存のHTTPサーバーを一時的に停止してください。
sudo service nginx stop sudo service apache2 stopなお、SSL証明書を生成するドメイン名は、すでにWebサーバーのIPアドレスを指している必要があります。この場合、次のコマンドで新しいSSL証明書を生成してください。
certbot certonlyドメイン名の検証方法を選択する画面が表示されます。1を押して一時的なサーバーインスタンスを開始すると、次のプロンプトでドメイン名の入力を求められます。あなたのドメインに入ると、certbotはドメイン名があなたのサーバーに解決していること、つまりあなたがそのドメインを管理していることを確認し、新しいSSL証明書を生成します。
HTTPサーバーとしてNginxを使用している場合、まずサイトの設定ファイルがどこにあるか確認します。これは、基本的に常に以下のディレクトリのいずれかになります。
サイト設定ファイルの場所がわかったら、テキストエディタ(nanoなど)で以下のコマンドで開いてください。
sudo nano /etc/nginx/sites-enabled/default.confドキュメントの先頭に、次の行を追加します。
server { listen 80; rewrite ^ https://$server_name$request_uri? permanent;}これにより、あなたのサイトへの非SSLリクエストはすべて、対応するSSLに自動的にリダイレクトされます。ファイルの先頭には、サイト設定の始まりが表示されます。
server { listen 80; server_name domain.com www.domain.com;このオプションを変更し、listenen 80; を listenen 443 ssl; に変更し、以下の行を下に追加してください。
ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;上記の行のドメイン名.comを必ずお客様のドメイン名に置き換えてください。Ctrl+Wを押し、プロンプトが表示されたら保存して閉じ、以下のコマンドでNginxを再起動します。
sudo service nginx startあなたのウェブサイトにアクセスすると、安全でないウェブサイトに関するブラウザの警告が表示されることなく、SSLが使用されているはずです。
HTTPサーバーとしてApacheを使用している場合、まずサイトの設定ファイルを探します。このファイルは、/etc/apache2/sites enabledディレクトリにあることが多いようです。場所がわからない場合は、以下のコマンドを実行してください。
apachectl -Sこれは、Apache に設定されているすべてのバーチャルホストと、それぞれの場所を表示します。設定ファイルが見つかったら、以下のコマンドでテキストエディタで開いてください。
sudo nano /etc/apache2/sites-enabled/default.confこの文書の一番上に、次の行を入力します。
<VirtualHost *:80> ServerName yourdomain.com Redirect permanent / https://yourdomain.com/</VirtualHost>既存の < VirtualHost*: 80> ディレクティブで、ポートを 80 から 443 に変更します。 このディレクティブで、以下の行を追加します。
SSLEngine onSSLCertificateFile /etc/letsencrypt/live/domain.com/fullchain.pemSSLCertificateKeyFile /etc/letsencrypt/live/domain.com/privkey.pem上記の行のドレスドメイン.comを必ず実際のドメインに変更してください。Ctrl+Xを押して保存し、プロンプトの後にファイルを閉じてから、以下のコマンドでApacheを再起動します。
sudo service apache2 startあなたのウェブサイトにアクセスすると、安全でないウェブサイトに関するブラウザの警告が表示されることなく、SSLが使用されているはずです。
ウェブサイトのSSL証明書を更新する必要がある場合、以下のコマンドで簡単に行うことができます。
certbot renewおめでとうございます。あなたのウェブサイトへのすべての訪問者は、現在、そのSSLバージョンを使用することを強制され、信頼できる機関によって署名された新しく生成されたSSL証明書によって保護されているため、訪問者がセキュリティ警告を受けることはありません。
この記事では、certbotとは何か、新しいSSL証明書の生成方法、SSLを使ったNginxやApacheの設定方法、そして後日証明書を更新する方法について説明します。
写真提供:Robert Avgustin/Shutterstock