nginx怎么配置ssl實現(xiàn)https訪問

申請證書

在這里,我直接申請騰訊云的免費證書。這里需要注意下,這亞洲誠信機構(gòu)頒發(fā)的免費證書只能一個域名使用,子域名那些需要另外申請。別說,這騰訊里面申請還挺快的,十多分鐘就通過了。下載的是一個zip文件,解壓后打開里面的nginx文件夾,把1_xxx.com_bundle.crt跟2_xxx.com.key文件復(fù)制下來。

打開nginx配置文件

不知道nginx文件位置的話可以通過whereis nginx命令來查找。

nginx怎么配置ssl實現(xiàn)https訪問

我的配置文件在/ect/nginx,現(xiàn)在把剛才的兩個證書文件復(fù)制過來,待會直接配置使用就行了。nginx的配置文件是nginx.conf,里面的配置內(nèi)容有以下,為了容易明白,我都加上了注釋。

#?運行用戶,默認即是nginx,可以不進行設(shè)置 user?nginx; #nginx進程,一般設(shè)置為和cpu核數(shù)一樣 worker_processes?1;  #錯誤日志存放目錄 error_log?/var/log/nginx/error.log?warn; #進程pid存放位置 pid?/var/run/nginx.pid;  events?{ ?worker_connections?1024;?#?單個后臺進程的最大并發(fā)數(shù) }  http?{ ?include?/etc/nginx/mime.types;?#文件擴展名與類型映射表 ?default_type?application/octet-stream;?#默認文件類型 ?#設(shè)置日志模式 ?log_format?main?'$remote_addr?-?$remote_user?[$time_local]?"$request"?' ???'$status?$body_bytes_sent?"$http_referer"?' ???'"$http_user_agent"?"$http_x_forwarded_for"';  ?access_log?/var/log/nginx/access.log?main;?#nginx訪問日志存放位置  ?sendfile?on;?#開啟高效傳輸模式 ?#tcp_nopush?on;?#減少網(wǎng)絡(luò)報文段的數(shù)量  ?keepalive_timeout?65;?#保持連接的時間,也叫超時時間  ?#gzip?on;?#開啟gzip壓縮  ?include?/etc/nginx/conf.d/*.conf;?#包含的子配置項位置和文件 }

大致看一下就好了,這是全局配置。為了更好管理,我們還是在最后一行聲明的/etc/nginx/conf.d文件夾里進行子項目配置。

打開里面的default.conf

#設(shè)定虛擬主機配置 server?{ ?#偵聽443端口,這個是ssl訪問端口 ?listen?443; ?#定義使用?訪問域名 ?server_name?xxx.com; ?#定義服務(wù)器的默認網(wǎng)站根目錄位置 ?root?/web/www/website/dist;?  ?#設(shè)定本虛擬主機的訪問日志 ?access_log?logs/nginx.access.log?main;  ?#?這些都是騰訊云推薦的配置,直接拿來用就行了,只是修改證書的路徑,注意這些路徑是相對于/etc/nginx/nginx.conf文件位置 ?ssl?on; ?ssl_certificate?1_xxx.com_bundle.crt; ?ssl_certificate_key?2_xxx.com.key; ?ssl_session_timeout?5m; ?ssl_protocols?tlsv1?tlsv1.1?tlsv1.2;?#按照這個協(xié)議配置 ?ssl_ciphers?ecdhe-rsa-aes128-gcm-sha256:high:!anull:!md5:!rc4:!dhe;#按照這個套件配置 ?ssl_prefer_server_ciphers?on;  ?#默認請求 ?location?/?{? ?root?/web/www/website/dist;? ?#定義首頁索引文件的名稱 ?index?index.html; ?}  ?#靜態(tài)文件,nginx自己處理 ?location?~?^/(images|javascript|js|css|flash|media|static)/?{ ?#過期30天,靜態(tài)文件不怎么更新,過期可以設(shè)大一點, ?#如果頻繁更新,則可以設(shè)置得小一點。 ?expires?30d; ?}  ?#禁止訪問?.htxxx?文件 ?#?location?~?/.ht?{ ?#?deny?all; ?#}  } server { ?#?80端口是http正常訪問的接口 ?listen?80; ?server_name?xxx.com; ?#?在這里,我做了https全加密處理,在訪問http的時候自動跳轉(zhuǎn)到https ?rewrite?^(.*)?https://$host$1?permanent; }

唔,配置基本就這些,挺簡單的吧。小白福利。

然后我們配置文件寫好后用nginx測試一下

nginx?-t

妥妥的,這個過了后就能重啟nginx生效了。

這里需要注意下,導(dǎo)入新的證書后需要重啟而不是重載,nginx -s reload是普通修改配置重載。

#?停止nginx nginx?-s?stop #?啟動 nginx

重啟后再次訪問自己的網(wǎng)站,嘖嘖,完美,左上角加上鎖,提示安全的連接。誒,搞定,開心。

nginx日常操作命令

  • nginx -t 測試配置文件

  • nginx -s reload 修改配置后重載生效

  • nginx -s reopen 重新打開日志文件

  • nginx -s stop 快速停止

  • nginx -s quit

查看nginx進程

ps?-ef?|?grep?nginx

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊6 分享