NginxのHTTPSに移動:チートシート

2回目は、上司からの「サーバーにhttpsを置く」というタスクに直面しているので、自分と他のすべての人のために虎の巻を作成することにしました。 そのため、状況は次のとおりです。上司が私たちのところに来て、httpsが必要だと発表しました。 カットの下で、私は5つの簡単なステップ、文字通り1時間ですべてを行う方法を書きます。 始めましょう。



0.上司にドメイン名を購入してもらいます。まだ持っていない場合は、ドメイン名なしでhttpsを置くことはできません。 購入後、サーバーのコントロールパネルにNSレコードとAレコードを登録することを忘れないでください。



1. SSL証明書のボスをnic.ruに送信し、 そこで彼にthawte 123証明書を購入させます。その間、CSRリクエストを生成します。



2. SSHを介してサーバーにアクセスし、次のように記述します。
openssl genrsa -out private.key 2048
      
      







3.次の行でCSRリクエストを作成します。
 openssl req -new -sha256 -key private.key -out csr.csr
      
      



、およびwhoisサービスを介して情報(会社名、メールなど)を取得します(すべてを自分で確認できる場合は、再度上司に尋ねます)。



4.この時点で、上司は、作成したばかりのCSRリクエストが必要な段階に達しました。 サーバーとコマンドにSSHで接続するように彼に伝えます
 cat csr.csr
      
      



コードをコピーし、必要な場所に貼り付けました。



5.その後、上司はadmin@our-domain.comのようなメールを作成して、ドメインの所有権を確認するように依頼します。 これを行うには、Yandexのサービス「ドメイン宛メール」を使用します。 そこでメールを作成し、上司のユーザー名/パスワードを通知します。



6.バンドルされたPEM証明書を作成します。 上司は、証明書がPEM形式であるthawteからの手紙を転送する必要があります。 崇高なテキストを開き、この証明書をそこに貼り付けるとともに、 中間証明書をthawte Webサイトからダウンロードし、同じファイルに貼り付けて/etc/nginx/certificate_bundled.crtに保存する必要があります。 注意! 最初に上司が私たちに送ったものが来て、そのときだけ-そのリンクからダウンロードした中間証明書。



7.秘密鍵を同じコマンドにコピーします
 mv private.key /etc/nginx/private.key
      
      







8. /etc/nginx/nginx.conf構成を開き、 「nginxでのHTTPSサーバーの構成」の資料の指示に従って構成します 。 つまり、httpセクションの/etc/nginx/nginx.confに登録する必要があります
  ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; ssl_stapling on; resolver 8.8.8.8;
      
      





次に、サーバーセクションの/etc/nginx/conf.d/example_ssl.confで:
 server { listen 443 ssl; server_name www.site.ru; root /var/www/html/web/; #      root,   -     index index.php index.html; set $yii_bootstrap "index.php"; #     yii,      location / { # Define the index index index.html $yii_bootstrap; try_files $uri $uri/ /$yii_bootstrap?$args; } # Any of the protected directories, we will ignore. There is no reason # to share out the protected web spaces location ~ ^/(commands|components|config|controllers|models|vendor|views) { deny all; } #avoid processing of calls to unexisting static files by yii location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { try_files $uri =404; } ....... keepalive_timeout 60; ssl_certificate certificate_bundled.crt; ssl_certificate_key private.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "RC4:HIGH:!aNULL:!MD5:!kEDH"; add_header Strict-Transport-Security 'max-age=604800'; ....... location ~ \.php$ { ....... fastcgi_param HTTPS on; #  php-fpm ....... } }
      
      







9.次のコマンドで秘密鍵のパスワードを無効にします。
 openssl rsa -in /etc/nginx/private.key -out /etc/nginx/private.key
      
      







10.次のコマンドでnginxを再起動します
 nginx -s reload
      
      



そして-出来上がり!



All Articles