配置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...