16. nginxのHTTPSサービス

自己署名証明書

キーファイルを生成します

#genrsa 使用idea算法,生成rsa证书,证书名为 debug.siguoya.name.key,1024表示位数 
openssl genrsa -idea -out debug.siguoya.name.key 1024 
#设置证书密码,在生成csr与crt文件的时候需要用到
#Enter pass phrase for debug.siguoya.name.key:
#Verifying - Enter pass phrase for debug.siguoya.name.key:

キーファイルでは、CSRファイルを生成

openssl req -new -key debug.siguoya.name.key -out debug.siguoya.name.csr
Enter pass phrase for debug.siguoya.name.key:
#输入刚才创建的key文件时设置的密码即可
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:GuangDong
Locality Name (eg, city) [Default City]:GuangZhou
Organization Name (eg, company) [Default Company Ltd]:company
Organizational Unit Name (eg, section) []:section
Common Name (eg, your name or your servers hostname) []:debug.siguoya.name
Email Address []:[email protected]

Please enter the following extra attributes
to be sent with your certificate request
#与上述创建key文件的密码不一样,直接留空即可
A challenge password []:
An optional company name []:

キーファイルは、CRTファイルをパッケージ化し、CSRファイルを生成しています

#-days指定证书的过期时间,以下指定为10年
openssl x509 -req -days 3650 -in debug.siguoya.name.csr -signkey debug.siguoya.name.key -out debug.siguoya.name.crt

nginxのサーバーの設定

    server{
        listen 443 ssl;
        server_name debug.siguoya.name;
        ssl_certificate /etc/nginx/debug.siguoya.name.crt;
        ssl_certificate_key /etc/nginx/debug.siguoya.name.key;
        location / {
            root /path/to/project;
            index index.html;
        }
    }

上記の設定証明書のCRT用、PEM証明書が適用されます。設定した後、あなたがする必要がありますnginx -s stop && nginxアクセスエラー場合はhttps Connection refused、使用することができnmap、サーバーのオープンポート443かどうかをチェックします。

設定が完了したら、再起動のたびnginxのは、これは以下の方法によって解決することができ、パスワードの資格情報を入力するように私たちを尋ねてきます

openssl rsa -in ./debug.siguoya.name.key -out ./debug.siguoya.name.nopass.key

次に、証明書ファイルを変更することは、パスワードなしの証明書ファイルであります

ssl_certificate_key /etc/nginx/debug.siguoya.name.nopass.key;

Appleの要件に合わせて証明書を生成

検出アドレス1:https://myssl.com/ats.html
検出アドレス2:https://www.qcloud.com/product/ssl#userDefined10

  • 以下TLSバージョン1.2より、このバージョンは、OpenSSLを使用する必要性よりも大きい1.0.2
  • もっとSHA256ハッシュアルゴリズムの署名
  • RSA 2048または256以上のECC公開鍵アルゴリズム
  • 暗号化技術を使用する前に

アップグレードcentos7デフォルトのopenssl 1.0.1バージョンを

wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar -zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config --prefix=/usr/local/openssl/1.0.2
make && make install
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl/1.0.2/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/1.0.2/include/openssl /usr/include/openssl
echo '/usr/local/openssl/1.0.2/lib' >> /etc/ld.so.conf
ldconfig -v
openssl version
#查看openssl版本,OpenSSL 1.0.1e-fips 11 Feb 2013
openssl version
#查看哈希算法签名,sha1WithRSAEncryption
openssl x509 -noout -text -in ./debug.siguoya.name.crt

CRTファイルの生成、オプションKEYOUT直接使用する場合は、nginxの時間を再起動する必要はありません、証明書のパスワードを入力してください

openssl req -x509 -days 3650 -sha256 -nodes -newkey rsa:2048 -keyout debug.siguoya.name.key -out debug.siguoya.name.crt

httpsの一般的な構成と最適化

keepalive_timeout 100;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

HTTPS強制

私たちはHTTP経由でアクセスするユーザーをしたくない場合は、HTTPSアクセスにHTTPを強制するために、以下の構成を介してアクセスすることができます

server {
    listen 80;
    server_name debug.siguoya.name;
    location / {
        return 301 https://debug.siguoya.name$request_uri;
    }
}

ビューCentOSのシステムのルート証明書がインストールさ

##查看证书列表
openssl crl2pkcs7 -nocrl -certfile /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem | openssl pkcs7 -print_certs -text -noout

#查看证书Common Name列表
openssl crl2pkcs7 -nocrl -certfile /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem | openssl pkcs7 -print_certs -text -noout | grep 'CN=' | grep 'Subject'

読むのトピック

おすすめ

転載: www.cnblogs.com/zy108830/p/12600381.html