1. 程式人生 > >nginx配置ssl證書後無法訪問https

nginx配置ssl證書後無法訪問https

default conf panel 重啟nginx note 控制臺 class try_files auth

一直聽說https更安全,要安裝證書,一直沒試過,今天終於試了試

首先得有個http的域名網站,服務器。

到阿裏雲的安全-ssl證書管理申請一個免費的,可以綁定一個域名 然後完善資料,照著例子配置一個ssl 重啟nginx

具體流程阿裏雲有文檔

技術分享圖片

下面是我的conf配置文件

server
        {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name     yeves.cn www.yeves.cn;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /www/yeves;
        ssl on;

       ssl_certificate  /usr/local/nginx/cert/a.pem;
       ssl_certificate_key  /usr/local/nginx/cert/a.key;
       ssl_session_timeout 5m;
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
	   ssl_prefer_server_ciphers on;

        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }
		location /{
		      try_files $uri $uri/ /index.php?$uri&$args;
		}
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /tmp/yeves.log;
}

server
        {
        listen          80;
        server_name yeves.cn www.yeves.cn;
        return 301 https://www.yeves.cn$request_uri;
}

配置好後 重啟nginx 結果發現一直無法訪問,但是http可以的,突然想起阿裏雲有個安全組,端口必須手動開放,去開放了443端口果然可以了

目的:https方式訪問網站

解決步驟:

1,首先得確保http訪問該網站是沒問題的。

2,配置nginx.conf監聽443端口,443是ssl默認的端口

a,nginx.conf這個文件所在路徑:/www/server/nginx/conf/nginx.conf(因為我是用寶塔面板安裝的nginxa跟不用寶塔面板安裝的路徑會有所不同)

b,nginx.conf中http模塊裏的server模塊是用來配置虛擬主機的,我們的ssl配置就要再server模塊裏完成,因為寶塔面板在創建網站的時候,就將每個虛擬主機的conf單獨寫出來了,然後在nginx.conf裏include這些單獨的conf。形如:include /www/server/panel/vhost/nginx/*.conf;

c,需要修改你想要配置https的虛擬主機的conf文件,形如(需增加的配置):

server

{

listen 443 ssl;

server_name www.xxxxx.cn;這個域名必須是你申請ssl證書的時候綁定的域名

ssl on;

ssl_certificate /www/server/panel/vhost/cert/1682997_www.fancy56.cn.pem; #SSL 證書文件路徑,由證書簽發機構提供

ssl_certificate_key /www/server/panel/vhost/cert/1682997_www.fancy56.cn.key; #SSL 密鑰文件路徑,由證書簽發機構提供

ssl_session_timeout 5m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

}

3,到雲服務器的控制臺,添加安全組規則,增加443端口

4,雲服務器的防火墻開啟443端口

firewall-cmd --zone=public --add-port=443/tcp --permanent 增加443端口

firewall-cmd --reload 重啟防火墻

以上就是我在配置ssl的時候遇到的一些問題解決方式。

阿裏雲文檔:

https://help.aliyun.com/knowledge_detail/95491.html?spm=5176.2020520154.cas.25.1abbF170F170Ll

nginx配置ssl證書後無法訪問https