1. 程式人生 > >Linux下 nginx配置ssl證書實現https訪問

Linux下 nginx配置ssl證書實現https訪問

現在很多網站都會使用SSL證書對網站資料進行傳輸加密,尤其是銀行、金融、電商類的網站。但很多人對於https的理解都存在不少誤區,比如https會讓網站訪問速度變慢、消耗伺服器資源、增加網站成本等等。之所以會實現https加密保護,主要是因為該網站使用了SSL證書。

配置ssl證書之前,先準備SSL證書,獲取途徑有很多。有免費的,也有付費的。本人直接在阿里雲申請的免費證書,稽核時間很快,1小時內通過。

下面為詳細步驟:

登入阿里雲,找到SLL證書:

開啟頁面後選擇購買證書

選擇免費型

購買成功後    進入控制檯,可以看到剛才購買的證書列表,然後選擇申請

 免費的證書只能繫結一個域名,所以在申請的時候填好自己的域名就行了。

等稽核通過後,選擇下載,根據自己的實際情況選擇相應的型別,本人的是nginx,所以就下載了nginx型別的證書

準備好證書後,找到nginx的安裝目錄,我的安裝位置為:/usr/local/nginx 

進入 config/nginx.conf 

命令:vim nginx.conf

開始配置檔案的修改 

在修改配置檔案之前,最好做一個備份,防止修改錯誤,也能及時回退錯誤

找到第一個監聽80埠的server:以下是我修改好的server

    server {

        listen       80;

        server_name  需要訪問的域名;

        rewrite ^(.*) https://$server_name$1 permanent; #這句是代表 把http的域名請求轉成https

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

            proxy_pass   http://需要訪問的域名; #因為這裡還是80埠,所以保持http就可以了

        }

    }

在實際的配置檔案中,最好把我上面的備註刪除

第一個server修改好了之後。那麼就需要開始配置第二個server。拉到檔案的底部。看到有一個https型別的server。而且已經全部被註釋封上了,這是我們需要改的第二個server,如圖: 

這裡除了HTTPS server這行之外,其他的 # 刪除,啟動https模組

    # HTTPS server

    #

    server {

        listen       443 ssl;

        server_name  需要訪問的域名,這裡也不用加https;

        ssl on;

        ssl_certificate      /usr/local/ssl/app/app.pem;  #這裡是ssl key檔案存放的絕對路徑,根據自己的檔名稱和路徑來寫

        ssl_certificate_key  /usr/local/ssl/app/app.key;  #這裡是ssl key檔案存放的絕對路徑,根據自己的檔名稱和路徑來寫

        ssl_session_cache    shared:SSL:1m;

        ssl_session_timeout  5m;

        ssl_ciphers  HIGH:!aNULL:!MD5;

        ssl_prefer_server_ciphers  on;

        location / {

            proxy_pass   http://需要訪問的域名;

        }

    }

配置好後,nginx的配置就算是完成了。不過這只是配置ssl證書的第一步!

接下來就是要讓配置檔案生效:

進去nginx的sbin資料夾,我的sbin資料夾在:/usr/local/nginx/sbin

執行以下語句:檢驗配置檔案是否有錯誤

./nginx -t

如果nginx曾經安裝過SSL模組,那麼應該會顯示以下介面:(如果已經顯示配置成功,那麼可以跳過這一步,直接重啟nginx就可以了) 

 

可是大多數第一次安裝https證書,都會報錯,說缺少SSL模組,如下:

這時候我們就可以先安裝SSL模組: 

先確認2個位置: 

1)我的nginx是安裝在了/usr/local/nginx/下 

2)我的nginx的原始碼包放在了/usr/local/nginx/nginx/nginx-1.8.0下。如果沒有的話,重新下載你對應的nginx版本的原始碼包,找個目錄解壓

目錄切換到我們的原始碼包安裝位置:

cd /usr/local/nginx/nginx/nginx-1.8.0

執行語句,重新安裝ssl模組:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module

了。配置成功後,那麼就需要編譯我們的配置。(注意這裡只能用make 而不要用make install,因為執行make install是覆蓋安裝的意思) 

執行:

make

等待執行完成後,我們需要把新編譯的nginx模組替換原來的nginx。

還是老規矩,先備份舊的nginx,執行語句(這裡面複製的檔案的路徑需要根據你們安裝的目錄自行修改,如果和我安裝的路徑是一樣的那麼可以直接執行該語句):

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

關閉nginx(因為要把新的模組覆蓋舊的nginx)

先找到nginx埠號,如圖,目前我nginx的程序號為:13542

ps -ef|grep nginx

 

殺死該程序就可以了,執行語句:

kill -QUIT 13542

關閉nginx程序後就可以開始替換了(注意:我當前的位置是在我nginx的原始碼包中,目錄不要搞錯了) 

 

執行:(複製到我的nginx的目錄中)

cp ./objs/nginx /usr/local/nginx/sbin/

然後就是啟動nginx。在啟動之前,也可以在測試一次配置檔案是否已經生效:

#先切換到sbin目錄

cd /usr/local/nginx/sbin/

#檢測nginx的配置檔案是否有錯誤

./niginx -t

看到這樣的,就是已經成功了 

最後啟動nginx:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

因為剛才替換nginx模組的時候是把nginx程序都殺死了,所以要用上面的命令進行啟動,而不能使用reload重啟。

nginx正常啟動後,我們在訪問我們的網站,發現https就已經配置好了

有什麼不明白的可以留言,我看到後會一一回復。感謝大家支援!

 

我的公眾號,歡迎大家關注哦!

 

相關推薦

Linux nginx配置ssl證書實現https訪問

現在很多網站都會使用SSL證書對網站資料進行傳輸加密,尤其是銀行、金融、電商類的網站。但很多人對於https的理解都存在不少誤區,

nginx配置ssl證書實現https訪問

區分 idt 域名 aes ima list tool get nginx配置文件 一,環境說明 服務器系統:centos7.2 服務器IP地址:4xxxx 域名:bjubi.com 二,域名解析到服務器 在阿裏雲控制臺-產品與服務-雲解析DNS-找到需要解析的域名點“解析

nginx配置ssl證書實現https訪問(附圖解)

最近專案上為了安全訪問,需要把http請求升級到https,所以安裝了nginx來配置SSL證書。我們的證書是客戶購買阿里雲伺服器免費申請的,所以具體的申請是有客戶完成的(這一塊可以直接溝通阿里雲售後),我們拿到的兩個證書有兩個檔案,分別是:xxx.pem(公匙)檔案和xxx

nginx配置SSL證書實現https服務

在前面一篇文章中,使用openssl生成了免費證書 後,我們現在使用該證書來實現我們本地node服務的https服務需求。假如我現在node基本架構如下: |----專案 | |--- static # 存放html檔案 | | |--- index.html # in

Centos7.2Nginx配置SSL支持https訪問(站點是基於.Net Core2.0開發的WebApi)

ack 保存 受害者 etc proxy cer 查看 綁定 客戶端 準備工作 1.基於nginx部署好的站點(本文站點是基於.Net Core2.0開發的WebApi,有興趣的同學可以跳http://www.cnblogs.com/GreedyL/p/7422796.ht

Nginx 配置SSL實現 https 訪問

之前因為蘋果強制使用 HTTPS,在Apache上配置過SSL了,今天把 Apache換成了Nginx,記錄下Nginx配置SSL過程。   1、在Nginx conf目錄下新建一個 sslkey目錄(nginx-1.12.2\conf\sslkey),並將申請的證書(for

Centos7.5 Nginx配置SSL支持https訪問

reload clu stream rst real-ip upstream value 內容 com 核心配置: ? 通過指定由受信任的證書頒發機構(CA)頒發的有效證書,將服務器配置為偵聽端口上的HTTPS流量。? 通過配置nginx.conf文件來加強安全性。示例包括

Nginx配置SSL證書實現訪問HTTPS網站

一、什麼是 SSL 證書,什麼是 HTTPS SSL 證書是一種數字證書,它使用 Secure Socket Layer 協議在瀏覽器和 Web伺服器之間建立一條安全通道,從而實現: 1、資料資訊在客戶端和伺服器之間的加密傳輸,保證雙方傳遞資訊的安全性,不可被第三方竊

Nginx配置 SSL 證書 + 開啟 HTTPS網站

1. SSL背景介紹 谷歌從 2017 年起,Chrome 瀏覽器將也會把採用 HTTP 協議的網站標記為「不安全」網站;蘋果從 2017 年 iOS App 將強制使用 HTTPS;在國內熱火朝天的

Nginx配置SSL證書部署HTTPS網站(頒發證書

自行頒發不受瀏覽器信任的SSL證書 手動頒發 xshell登入伺服器,使用openssl生成RSA金鑰及證書 # 生成一個RSA金鑰 $ openssl genrsa -des3 -out tfjybj.key 1024 # 拷貝一個不需要輸入密碼的金

【spring boot】配置ssl證書實現https

【前言】這裡介紹在spring boot中配置真正的ssl證書,而不是自己隨便玩玩的那種證書。 【申請證書】以COMODO申請證書為例: 首先在服務上用openssl生成公鑰和私鑰 openssl req -new -key myPrivateKey.key -out

windows phpstudy appache 環境安裝ssl證書 實現https訪問(以美橙互聯為例)

一、伺服器部署環境二、購買域名三、購買ssl(這裡買的免費的dv證書)證書並獲取證書到郵件(需要對域名加txt解析,會有提醒)3.1            3.2登入你郵箱獲取證書會發給你:3.2.1您的SSL證書私鑰:-----BEGIN RSA PRIVATE KEY--

Nginx配置SSL證書部署HTTPS網站

一、什麼是 SSL 證書,什麼是 HTTPS SSL 證書是一種數字證書,它使用 Secure Socket Layer 協議在瀏覽器和 Web 伺服器之間建立一條安全通道,從而實現: 1、資料資訊在客戶端和伺服器之間的加密傳輸,保證雙方傳遞資訊的安全性,不可被第三方竊聽

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

default conf panel 重啟nginx note 控制臺 class try_files auth 一直聽說https更安全,要安裝證書,一直沒試過,今天終於試了試 首先得有個http的域名網站,服務器。 到阿裏雲的安全-ssl證書管理申請一個免費

phpstudy整合環境Apache配置SSL證書支援https訪問

本文作者使用的整合環境為PHPstudy2018,具SSL證書獲得方法用多種這裡就贅述。只針對本文作者在阿里雲申請的免費SSL證書,做講解。 第一步:登入你的阿里雲帳號找到購買SSL證書,找不到的可以直接在阿里帳號上搜索。 如圖購買就行,無費用。 第二步:新增TXT域名解釋記錄值.

linxu部署nginxSSL證書HTTPS)依賴模組與使用nginx.conf配置https協議詳解

一:開始Nginx的SSL模組1.1 Nginx如果未開啟SSL模組,配置Https時提示錯誤1nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/n

WDCP上配置SSL證書https 2017-08-28 百度總結 操作環境:linux的WDCP操作面板(沒有操作面板就在命令列操作) wdcp 安裝ssl證書教程實現https訪問 1.申請

百度總結 操作環境:linux的WDCP操作面板(沒有操作面板就在命令列操作) wdcp 安裝ssl證書教程實現https訪問 1.申請免費或付費證書 2.新建站點並 按照提示上傳SSL證書,證書名稱為:域名.KEY/域名.PEM 3.修改對應站點的.CONF檔案(配置檔案) 1234567

nginx如何配置 ssl證書?騰訊雲ssl證書為例!

div null pass 一次 通過 如何 趨勢 oot title nginx下如何配置 ssl證書?騰訊雲ssl證書為例! 目前為止,https已經成為一種趨勢,想要開啟https就需要ssl證書。 首先,為域名註冊ssl證書。 騰訊雲註冊地址:https:

Centos7.5 Nginx配置SSL支援https訪問

核心配置: • 通過指定由受信任的證書頒發機構(CA)頒發的有效證書,將伺服器配置為偵聽埠上的HTTPS流量。• 通過配置nginx.conf檔案來加強安全性。示例包括選擇更強大的密碼,並將所有流量通過HTTP重定向到HTTPS。• 新增HTTP Strict-Transport-Security(HSTS

Ubuntu+Apache2配置騰訊雲ssl證書實現https

Ubuntu+Apache2配置騰訊雲ssl證書實現https 前言 本文所用的伺服器環境是 Ubuntu18.04 + Apache2 .通過部署 ssl 來達到預設使用https方式訪問網站的目的。 超文字傳輸安全協議(英語:Hypertext Transfer