Nginx 配置 SSL證書 與 IPV6協議

如今的網站和應用都已開啟https,絕大部分網民也對https有所了解,蘋果公司2017年1月1日要求強制開啟ATS和HTTPS加密,HTTP是非常不安全的明文傳輸協議,任何通過HTTP協議傳輸的數據都以明文形式在網絡中“裸奔”,任何數據都處在被竊聽、篡改、冒充這三大風險之中,所以開啟HTTPS + IPV6協議將是未來互聯網勢不可擋的趨勢,網絡環境也將更加安全 。

Nginx 配置 SSL證書 與 IPV6協議

文章插圖
證書申請和配置如果不是購買了DV\\OV\\EV收費版證書,只是想要使用加密證書,這里推薦使用 OHTTPS,因為它支持騰訊云、阿里云、七牛、寶塔一鍵部署,驗證域名申請,證書到期自動續費 。
到 OHTTPS申請好證書后,將cert.key、cert.cer、fullchain.cer下載到本地 。
使用SFTP登錄到服務器/usr/local/nginx/conf/ssl/ 目錄下,新建文件夾存放加密證書,如:/usr/local/nginx/conf/ssl/opssh
然后到/usr/local/nginx/conf/ssl/目錄下,新建文件:dhparam.pem(密鑰交換),內容如下:
—–BEGINDHPARAMETERS—–
MIIBCAKCAQEA128R9uyGLlLfuEO9sWtv0q5nbtVxiThJjEHbC/OeMt8dF7pFQ4EE
HZzr2Yx8dEAjsqJY+0VPRRtwGJ6igXxXLlJPPfE4IEuGcBIO2d/2fROAgPaaGiQX
JTjl7JmqBkLmvO4WR9nsZ9bWub5Xm1uSvJcIJ7Yaz5dEu04WDhkg8pQI/Nj5EFXQ
Moi9ChFriIhe8euZqKd3P9V3ljvvaUg8Z7LTwHA3EngdMdmaj5fP2DtA1X9swlFA
XUrb61HKlf3/iCmmxqhU6AG/CPzoxl87cONKiT5Kj4jYPsXk1VYTs+x7jy1n6kx8
aGNTCXRKVWQOvOBQOwiFdSSFODbuTFOnYwIBAg==
—–ENDDHPARAMETERS—–IPV6協議開啟如:服務器支持IPV6地址訪問,那么就去除 # 號后添加或修改
#listen[::]:80; #listen[::]:443sslhttp2;部署站點SSL證書訪問到網站 conf 配置文件,conf文件具體位置在 \” /usr/local/nginx/conf/vhost/ \” 目錄文件中,找到對應站點的conf文件(如沒有站點配置文件,請新建后進行修改),修改設置如下:
server
{ listen80; listen443sslhttp2; #以上為IPV480443端口監聽 listen[::]:80; listen[::]:443sslhttp2; #以上為IPV680443端口監聽 server_nameopssh.cnwww.opssh.cn; indexindex.phpindex.htmlindex.htmdefault.phpdefault.htmdefault.html;
root/home/wwwroot/opssh.cn;
#以上分別為網站域名設置、默認訪問格式、網站程序存放路徑 #error_page404/404.html; #SSL-STARTSSL相關配置,請勿刪除或修改帶注釋的404規則 #HTTP_TO_HTTPS_START if($server_port!~443){ rewrite^(/.*)$https://$host$1permanent; } #REWRITE-START
if($host~\’^www.opssh.cn\’){
return301https://opssh.cn.cn$request_uri;
} #REWRITE-END #以上分別為非443端口訪問跳轉443端口,301跳轉 #443跳轉,如:http://opssh.cn->https://opssh.cn
#301跳轉,如:https://www.opssh.cn->https://opssh.cn ssl_certificate/usr/local/nginx/conf/ssl/opssh/fullchain.cer;
ssl_certificate_key/usr/local/nginx/conf/ssl/opssh/cert.key;
#證書存放路徑,分別為中間證書文件、私鑰文件 ssl_session_timeout5m;
ssl_protocolsTLSv1.1TLSv1.2TLSv1.3;
#TLS協議 ssl_prefer_server_cipherson;
ssl_ciphers\”TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5\”;
#加密套件 ssl_session_cachebuiltin:1000shared:SSL:10m; #openssldhparam-out/usr/local/nginx/conf/ssl/dhparam.pem2048
ssl_dhparam/usr/local/nginx/conf/ssl/dhparam.pem;
#密鑰交換文件 add_headerStrict-Transport-Security\”max-age=31536000\”; error_page497https://$host$request_uri; includerewrite/php.conf;
#網站規則設置文件 #error_page404/404;
#DenyaccesstoPHPfilesinspecificdirectory
#location~/(wp-content|uploads|wp-includes|images)/.*\\.php${denyall;} includeenable-php.conf; location~.*\\.(gif|jpg|jpeg|png|bmp|swf)${
expires30d;
} location~.*\\.(js|css)?${
expires12h;
} location~/.well-known{
allowall;
} location~/\\.{
denyall;
} access_logoff;
}配置內容解說:添加add_header#減少點擊劫持
add_headerX-Frame-OptionsDENY;
#禁止服務器自動解析資源類型
add_headerX-Content-Type-Optionsnosniff;
#防XSS攻擊
add_headerX-Xss-Protection1;如果使用https加密檢查提示下面內容,可對應修改;服務器支持弱Diffie-Hellman(DH)密鑰交換參數,修改后后支持http/2
ssl_ciphers\”EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5\”;修改為:
ssl_ciphers\”TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5\”;

推薦閱讀