HTTPS A 在nginx下的配置方法

2021-08-27 03:52:15 字數 3782 閱讀 2470

配置https前,需要有對應的證書。恰好,讓我們加密提供了免費的ssl / tls證書。

下面獲取證書的命令中,--email表示網域名稱所有者的郵箱,網域名稱多個用-d連線。

這裡不多做介紹,可前往 檢視對應文件資訊。

certbot會通過80埠檢查網域名稱的解析ip是否和請求的伺服器ip一致,獲取證書前,請確認你的網域名稱解析正常。

# certbot 在 epel 源裡,需要先安裝 epel。

yum install epel-release

# 安裝 certbot

yum install certbot-nginx

# 檢視 80 埠是否被占用

lsof -i:80

# 如果是 nginx 占用,停止 nginx,釋放 80 埠

nginx -s stop

# 獲取證書

certbot certonly --standalone --email [email protected] -d example.com -d www.example.com

# 更新證書

certbot renew

開啟需要配置​​https的站點配置檔案,將以下**貼上在伺服器裡,並根據注釋修改其對應的內容。

listen 443 ssl;

# 開啟 ssl 功能

ssl on;

# 修改這裡,ssl 證書檔案路徑,由證書簽發機構提供

# 修改這裡,ssl 金鑰檔案路徑,由證書簽發機構提供

# 修改這裡,ca 根證書檔案路徑,由證書簽發機構提供

# 修改這裡,diffie-hellman 金鑰檔案路徑,建議定期更改

# 生成方法: openssl dhparam -out dhparam.pem 4096

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

# 修改這裡,加密或解密 session_ticket 金鑰檔案路徑,建議定期更改

# 生成方法: openssl rand 48 > session_ticket.key

ssl_session_ticket_key /etc/nginx/ssl/session_ticket.key;

ssl_protocols tlsv1 tlsv1.1 tlsv1.2;

ssl_ciphers "ecdhe-ecdsa-chacha20-poly1305:ecdhe-rsa-chacha20-poly1305:ecdhe-ecdsa-aes128-gcm-sha256:ecdhe-rsa-aes128-gcm-sha256:ecdhe-ecdsa-aes256-gcm-sha384:ecdhe-rsa-aes256-gcm-sha384:dhe-rsa-aes128-gcm-sha256:dhe-rsa-aes256-gcm-sha384:ecdhe-ecdsa-aes128-sha256:ecdhe-rsa-aes128-sha256:ecdhe-ecdsa-aes128-sha:ecdhe-rsa-aes256-sha384:ecdhe-rsa-aes128-sha:ecdhe-ecdsa-aes256-sha384:ecdhe-ecdsa-aes256-sha:ecdhe-rsa-aes256-sha:dhe-rsa-aes128-sha256:dhe-rsa-aes128-sha:dhe-rsa-aes256-sha256:dhe-rsa-aes256-sha:ecdhe-ecdsa-des-cbc3-sha:ecdhe-rsa-des-cbc3-sha:edh-rsa-des-cbc3-sha:aes128-gcm-sha256:aes256-gcm-sha384:aes128-sha256:aes256-sha256:aes128-sha:aes256-sha:des-cbc3-sha:!dss";

ssl_prefer_server_ciphers on;

ssl_session_timeout 1d;

ssl_session_cache shared:ssl:50m;

ssl_session_tickets on;

ssl_buffer_size 1400;

ssl_stapling on;

ssl_stapling_verify on;

# 修改這裡,國內填 223.5.5.5 223.6.6.6,國外填 8.8.4.4 8.8.8.8

resolver 8.8.4.4 8.8.8.8 valid=300s;

resolver_timeout 5s;

add_header strict-transport-security "max-age=31536000; includesubdomains";

add_header x-content-type-options "nosniff";

add_header x-frame-options "deny";

add_header x-xss-protection "1; mode=block";

如果你要使用http2,就需要更新nginx到1.9+,然後在listen後面加上http2,如下

listen 443 ssl http2;
如果你要ssl支援tlsv1.3,需要使用openssl draft-18 +的分支,然後使用下面的配置:

ssl_protocols tlsv1 tlsv1.1 tlsv1.2 tlsv1.3;

ssl_ciphers "tls13-chacha20-poly1305-sha256:tls13-aes-256-gcm-sha384:tls13-aes-128-gcm-sha256:tls13-aes-128-ccm-8-sha256:tls13-aes-128-ccm-sha256:ecdhe-ecdsa-chacha20-poly1305:ecdhe-rsa-chacha20-poly1305:ecdhe-ecdsa-aes128-gcm-sha256:ecdhe-rsa-aes128-gcm-sha256:ecdhe-ecdsa-aes256-gcm-sha384:ecdhe-rsa-aes256-gcm-sha384:dhe-rsa-aes128-gcm-sha256:dhe-rsa-aes256-gcm-sha384:ecdhe-ecdsa-aes128-sha256:ecdhe-rsa-aes128-sha256:ecdhe-ecdsa-aes128-sha:ecdhe-rsa-aes256-sha384:ecdhe-rsa-aes128-sha:ecdhe-ecdsa-aes256-sha384:ecdhe-ecdsa-aes256-sha:ecdhe-rsa-aes256-sha:dhe-rsa-aes128-sha256:dhe-rsa-aes128-sha:dhe-rsa-aes256-sha256:dhe-rsa-aes256-sha:ecdhe-ecdsa-des-cbc3-sha:ecdhe-rsa-des-cbc3-sha:edh-rsa-des-cbc3-sha:aes128-gcm-sha256:aes256-gcm-sha384:aes128-sha256:aes256-sha256:aes128-sha:aes256-sha:des-cbc3-sha:!dss";

配置資料改好後,確認無誤,重啟下nginx就行,到 測下分數吧。

Thinkphp5 在nginx環境下的配置問題

首先thinkphp5目錄指向到webroot public目錄下。thinkphp的url訪問 http servername index.php 或者其它應用入口檔案 模組 控制器 操作 引數名 引數值 這個需要支援pathinfo,apache預設支援,而nginx不支援。首先在php.ini...

Memcached在Windows下的配置和使用

開啟控制台,進入memcached主程式目錄,輸入 memcached.exe d install 安裝memcached服務 memcached.exe d start 開啟memcached服務 此時會看到程序中多了乙個memcached的服務程序。開啟新的控制台,輸入 telnet 你的伺服器...

在windows下的VSCode編寫C 配置

之前在看到網上沒有相關中文的vs code的配置教程,於是就自己寫乙個。必須安裝windows下的gcc 配置下來就是這樣,可以進行debug。這是我的外掛程式 將設定放入此檔案中以覆蓋預設設定 其中 clang.executable 填寫自己的g 路徑,必須為絕對路徑,而且使用雙反斜槓 c cpp...