centos 本地虛擬機 nginx添加ssl證書


 

本地環境,無法申請免費的證書,即便是申請下來了,也會因為域名無法使用,那么我們可以使用另外一種方法:openssl

1:安裝 openssl

yum install mod_ssl openssl

2:切換至nginx目錄創建ssl文件夾(也可以在任何地方創建ssl文件夾,看自己的選擇)

[root@localhost ~]# cd /usr/local/nginx/conf/
[root@localhost conf]# mkdir ssl
[root@localhost conf]# cd ssl/
[root@localhost ssl]#

3:生成2048位秘鑰

openssl genrsa -out server.key 2048

4:生成證書簽名請求(CSR),這里需要填寫許多信息,按照上面的提示進行填寫即可,如果你想隨便填寫,那也是可以的。

openssl req -new -key server.key -out server.csr

5:生成類型為X509的自簽名證書。有效期設置3650天,即有效期為10年。

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

6:執行完以上命令后,會在ssl文件夾內生成三個文件

[root@localhost ssl]# ll
總用量 12
-rw-r--r--. 1 root root 1200 1月  25 22:06 server.crt -rw-r--r--. 1 root root 1005 1月  25 22:06 server.csr -rw-r--r--. 1 root root 1679 1月  25 22:05 server.key

7:如果出現這三個文件夾,那么恭喜你,你已經安裝完成了!接下來配置nginx支持https

首先打開nginx.conf配置文件,這里就以nginx.conf為例(這里只展示server區塊,紅色字體部分):

server
    {
        listen 80 default_server reuseport;
        #listen [::]:80 default_server ipv6only=on;
        #https配置開始
 listen 443 ssl; ssl_certificate ssl/server.crt; ssl_certificate_key ssl/server.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on;
        #https配置結束
        server_name _;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;

        #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 /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

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

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log;
    }
include vhost/*.conf;

8:重新啟動nginx,然后使用https進行訪問,https://localhost

[root@localhost ssl]# /etc/init.d/nginx restart

 


免責聲明!

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



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