Nginx配置SSL證書

      Nginx是一款應用非常廣泛的web服務軟件,具有輕量級、擴展性好、跨平臺、動態加載配置文件等特點。同時具有反向代理、負載均衡等功能,深受IT技術人員青睞。

生產環境一般都是購買的商業版SSL證書,常見品牌有賽門鐵克、geotrust、global sign、沃通等,不同的品牌性能和價格方面都會有一定的差距,比較受歡迎的就是通配符證書,例如*.baidu.com  * 代表任意字符串 一個證書可以用於多個子域名。本文主要是將自己配置Nginx  https證書的過程記錄。沒那麼奢侈購買商業產品。將會分享一下自制SSL證書以及Nginx配置SSL證書的過程。

    Nginx實現https需要http_ssl_module模塊支持,該模塊是默認編譯模塊,不需要我們再次編譯。

一、製作證書

1、生成key文件

 openssl  genrsa  -out cert.key 2048

image.png

key文件內容

-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAxFtXu3n1TMDSVw7E5YlIY0EMORJMyalBWejs7f9gTBT0rc2v
vB7u4qqf2bFi/HGf7a28GEDKJdkn9HAV9fHYM4efFoZbAary+CGjoMQKEnk8EA0a
kWoCIY7unz8Zvo82CffCXHHFMmzCBuPXXj5bXF7uWqRELD6AGbJiGeCK4R4jDvXv
EP7mgRd6uR7uF0aFUCYvy5c2OZ/I4dyHG/D1zfkbjQ0DXknRWYr31Ahao1wxri3D
cEe8i37a22Nq2NPlEibqtYXDQF5D3sZBJT2oRPkQSBlI9SqXfqvLy/nqYeG9IpKd
St48JUClgVLsvdG/vkGTj09R/arik9wVoqfgFQIDAQABAoH/B6uJwckBy/28Oapa
Bp1WNopT7+bHGRmDc/+lQaa4HEC1ThS6yJ5stm3z0I0dUL8fgClJL6lYPCI/bUzz
jqfjyh+CF18oLuh+lTK7MYx22EHkFrxsTUHW03jB2XaditQNSFZlQTcwfMfCzIIZ
55SH/RO4O9Iu14uZdWeCbYBX7HMvY2b+GRHLNeXGDsLnctaNP90/1DnWMPDKM+Ep
l9DUrfMQf1IL/BKilA9k2wE6eI7eI14t8/7Q0mlSOIrgTti6Ep9TU2pCLkSkS2hu
VKGqNqMZpN4rn+2lmKGr/LXjtM7BNeUHBM1jFBsZTs+KgU1oy66GjLIebB1km1Yw
UE45AoGBAOnHKgsgjrW8by8tGFlGvxN/4ILUPzmuSwmybCweoezLzHuFtWAHS013
pM0uMMK5CmrC4t0vlw3rPycpgYjModPAL/cXVBHOcJQeA29DFh1cSODi4DckJtPD
+T0ZHOaAWpuaSeBNXOS89ToVZKfr1TYhPQgIsbYHTpA5tjnKz6DbAoGBANcFjvC7
pimZW+ZLISkKVDxfOOgExvHd1TuEs87kRC+HzMfKSbUgu3M2gHmboj7vyRt+3F4J
A2aA1aOCLDKs5GAvbMG+b4iXpW4l43ItWtutwcHMcQU04zZNK7IPecYC4bqq3D81
EI2oehQH2ImJMe2BFewA8uW9Ldl6qxf+ZB3PAoGAdA9EeDG5p8/dAvbIV8ofonah
51Gn8eLtreq+eUjb6stiwRAoc3wrjlIPpy1/V6y11zrZliXCQE7CE5cvj9LHpHCN
X4ZdXlm22lHsMpiDqh/erobz+WwhOpDYc9S73FNsqEN42bqOm6CTvjpQtm0GdNEb
k5l9YHlQL5n3NcnSOnECgYBce4uLh2pkog2g89eDa2nnvZ0gTk2zYhKA0wbzicK6
HtK5bAxf14BIgbyokYQrRb9eECaAW6gWwnshJLAV678ej8dbXaljOrZwteMqDM/z
hLy9uk0yTBkeFfshTv61aC/mte6dURmZlElNrEI6hcPvv4HKTG4s2j2KOPS2ETjG
iQKBgQCxa8NwzUkQnh+rI0Lq85BMhNJOQl0anZG1yXbpko0qb0T14h9unJXPtcj+
FuGfEBrXOd/vSb8wn9A9Whu9v0g6BoIVJX2XKOQLIC8pSWjf66x1K6h33S2lwTTf
CHSRbiIIW2mhdVVXgQZGDAYJuDRSrbbQG9YnZx3AyZ3taRGbqA==
-----END RSA PRIVATE KEY-----

2、生成pem文件

openssl  req  -new -x509  -days 3650  -key cert.key  -out cert.pem

image.png

pem 文件內容

-----BEGIN CERTIFICATE-----
MIID8zCCAtugAwIBAgIJAMSYcH7adC82MA0GCSqGSIb3DQEBCwUAMIGPMQswCQYD
VQQGEwJDTjEMMAoGA1UECAwDQUJDMRAwDgYDVQQHDAdCZWlqaW5nMRAwDgYDVQQK
DAdCZWlqaW5nMRIwEAYDVQQLDAlib25kbmdpbngxFjAUBgNVBAMMDWJvbmRuZ2lu
eC5jb20xIjAgBgkqhkiG9w0BCQEWE2FkbWluQGJvbmRuZ2lueC5jb20wHhcNMTgw
ODAyMjMxNjAwWhcNMjgwNzMwMjMxNjAwWjCBjzELMAkGA1UEBhMCQ04xDDAKBgNV
BAgMA0FCQzEQMA4GA1UEBwwHQmVpamluZzEQMA4GA1UECgwHQmVpamluZzESMBAG
A1UECwwJYm9uZG5naW54MRYwFAYDVQQDDA1ib25kbmdpbnguY29tMSIwIAYJKoZI
hvcNAQkBFhNhZG1pbkBib25kbmdpbnguY29tMIIBIjANBgkqhkiG9w0BAQEFAAOC
AQ8AMIIBCgKCAQEAxFtXu3n1TMDSVw7E5YlIY0EMORJMyalBWejs7f9gTBT0rc2v
vB7u4qqf2bFi/HGf7a28GEDKJdkn9HAV9fHYM4efFoZbAary+CGjoMQKEnk8EA0a
kWoCIY7unz8Zvo82CffCXHHFMmzCBuPXXj5bXF7uWqRELD6AGbJiGeCK4R4jDvXv
EP7mgRd6uR7uF0aFUCYvy5c2OZ/I4dyHG/D1zfkbjQ0DXknRWYr31Ahao1wxri3D
cEe8i37a22Nq2NPlEibqtYXDQF5D3sZBJT2oRPkQSBlI9SqXfqvLy/nqYeG9IpKd
St48JUClgVLsvdG/vkGTj09R/arik9wVoqfgFQIDAQABo1AwTjAdBgNVHQ4EFgQU
pollYkAAmTvsn66WJRJqbw7pgPUwHwYDVR0jBBgwFoAUpollYkAAmTvsn66WJRJq
bw7pgPUwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAYHPzGJrqNPab
IGKh8fQcV+IotjGooz3QeLVPLCOm05UNTo4MVRcuSFriHccEwlj3q92yjSdf63bT
KnnTfwFl5Jrx9GzgvlM1cWPMBcB8LkDvS7WgHWTVc3MQ+rD149G8WY9quP2eBFGn
klUJ0C8NeQOEL0Aj1WMx3z/c8aguv+JRczMQIqZBoAdjARtEHdVntMRUivvgKuTp
4yxOO2/9k23QTm0/d1JzMK14/PAsKA2Snux69XLFW2Kfh/6T0e7IEXEEM3LROV5p
SDT+AqyP8q4mb+JswA9Lzr+VLUMxH/Hl9tDtJHfWJ/6u3/6FwhkCColyA11QkSXe
/WAoCDXMeg==
-----END CERTIFICATE-----

兩個文件生成完成,接下來就可以配置Nginx,然後就可以通過https訪問我們的站點。

步驟:

1、將生成的key、pem文件拷貝到nginx的conf目錄下,爲了管理多個SSL證書,可以在nginx的 conf目錄下建立cert目錄專門存放SSL證書相關文件。

例如:在該目錄下有兩個SSL證書文件,

image.png

2、配置nginxSSL文件

將SSL相關的開啓,ssl_certificate處 寫我們生成的pem文件,ssl_certificate_key寫我們生成的key文件。配置完成後檢查nginx的配置文件 然後重啓nginx.

image.png

 server {
        listen       443 ssl;
        server_name  10.57.31.204 server.bondback.com;
        ssl_certificate     cert/cert.pem ;
        ssl_certificate_key  cert/cert.key;
        #ssl_certificate     cert/bond.pem ;
        #ssl_certificate_key  cert/bond.key;

        ssl_session_cache    shared:SSL:1m;
        ssl_session_timeout  5m;

       ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers  on;

        location / {

                proxy_pass  http://www;
        }
    }

image.png

通過IP或者綁定hosts訪問https://10.57.31.204/

image.png

3、http轉https配置

  隨着https使用越來越廣泛,大多數網站已經使用https,而部分用戶的使用習慣還是http,這時我們就可以配置http跳轉https這種方式引導用戶,同時提高網站的兼容性。

我們可以在http配置的location 一下配置

rewrite ^(.*)$  https://$host$1 permanent;

listen       80;
        server_name   server.bundbank.com;

        #charset koi8-r;


        #access_log  logs/host.access.log  main;

        location  / {
                rewrite ^(.*)$  https://$host$1 permanent; # permanent 永久跳轉

        }

image.png

當我們訪問http://10.57.31.204就會跳轉到https://10.57.31.204

image.png

這樣我們就可以完成nginx的ssl的配置,優化部分後期完善!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章