Linux下nginx配置https協議訪問


一、配置nginx支持https協議訪問,需要在編譯安裝nginx的時候添加相應的模塊--with-http_ssl_module

查看nginx編譯參數:/usr/local/nginx/sbin/nginx -V

如下所示:

configure arguments: --prefix=/usr/local/nginx --with-google_perftools_module --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_sub_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.1h --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.35

如果沒有--with-http_gzip_static_module這個參數,需要重新編輯nginx

二、防火牆開啟https協議默認端口443

vi /etc/sysconfig/iptables #編輯防火牆配置文件,添加以下代碼

-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

:wq! #保存退出

service iptables restart  #重啟防火牆

三、創建https證書

確保機器上安裝了openssl和openssl-devel

yum install openssl  openssl-devel  #CentOS使用yum命令安裝

mkdir   /usr/local/nginx/conf/ssl   #創建證書存放目錄

cd /usr/local/nginx/conf/ssl  #進入目錄

創建服務器私鑰:openssl genrsa -des3 -out server.key 1024  #根據提示輸入證書口令

創建簽名請求的證書(CSR):openssl req -new -key server.key -out server.csr  #輸入上面設置的口令

#根據提示輸入相應的信息

Country Name (2 letter code) [XX]:cn  #國家

State or Province Name (full name) []:zhejiang  #省份

Locality Name (eg, city) [Default City]:hangzhou  #城市

Organization Name (eg, company) [Default Company Ltd]:osyunwei  #公司

Organizational Unit Name (eg, section) []:sys  #部門

Common Name (eg, your name or your server's hostname) []:osyunwei   #主機名稱

Email Address []:xxx@qq.com  #郵箱

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:123456  #證書請求密鑰,CA讀取證書的時候需要輸入密碼

An optional company name []:osyunwei  #公司名稱,CA讀取證書的時候需要輸入密碼

openssl rsa -in server.key -out server_nopassword.key  #對key進行解密

openssl x509 -req -days 365 -in server.csr -signkey server_nopassword.key -out server.crt

#標記證書使用上述私鑰和CSR

四、修改nginx配置文件,加載ssl證書

vi   /usr/local/nginx/conf/nginx.conf  #編輯

listen       80;

listen       443;

ssl on;

ssl_certificate /usr/local/nginx/conf/ssl/server.crt;

ssl_certificate_key /usr/local/nginx/conf/ssl/server_nopassword.key;

ssl_session_timeout 10m;

ssl_session_cache shared:SSL:10m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers ALL:!ADH:!EXPORT56:-RC4+RSA:+HIGH:+MEDIUM:!EXP;

ssl_prefer_server_ciphers on;

fastcgi_param HTTPS $https if_not_empty;  #有https協議時自動使用https,否則忽略這個參數。

:wq! #保存退出

service nginx restart #重啟nginx

rewrite ^(.*) https://www.osyunwei.com$1 permanent;   #可以把http協議重定向到https上面

#301跳轉也可以把http協議重定向到https上面

server {

listen 80;

server_name www.osyunwei.com;

return 301 https://$host$request_uri;

}

使用https協議打開網址,如下圖所示:

轉載於OS運維


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM