NGINX配置使用HTTPS

前言

本文演示如何給NGINX服務(wù)器配置HTTPS鏈接,通過本文的練習(xí),讀者應(yīng)該具備能力在centos上部署一個(gè)nginx服務(wù)器,并配置https鏈接;文內(nèi)使用的操作系統(tǒng)為CENTOS7。

安裝軟件

  • 下載
yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel
wget https://nginx.org/download/nginx-1.14.0.tar.gz
tar -xzvf nginx-1.14.0.tar.gz
cd nginx-1.14.0
  • 配置nginx
# ./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_sub_module --with-stream --with-http_stub_status_module

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

./configure --help 可以查看配置項(xiàng)說明
完成之后的配置文件見:/usr/local/nginx/conf/nginx.conf,參數(shù)配置說明:https://nginx.org/en/docs/configure.html

  • 編譯
make && make install

配置證書

如果是購買證書,直接拷貝到conf/ssl目錄下即可。如果是私有證書,本文末尾有說明如何生成私有證書,讀者可以按步驟運(yùn)行。

修改配置文件

## 參考conf/nginx.conf文件,修改如下內(nèi)容(此處只是關(guān)鍵需要修改的部分)
http {
    server {
        #   HTTP 和 HTTPS 都使用,如果不使用HTTP則注釋掉80端口即可
        listen       80;
        listen              443 ssl;
        server_name  localhost;
        ssl_certificate     ssl/server.crt;
        ssl_certificate_key ssl/server.key;
    }
}

啟動(dòng)、停止、重啟

# 1.啟動(dòng)nginx
shell> nginx
# 可通過ps -ef | grep nginx查看nginx是否已啟動(dòng)成功
# 2.停止nginx
shell> nginx -s stop
# 3\. 重新啟動(dòng)
shell> nginx -s reload

nginx默認(rèn)配置啟動(dòng)成功后,會(huì)有兩個(gè)進(jìn)程,一個(gè)主進(jìn)程(守護(hù)進(jìn)程),一個(gè)工作進(jìn)程。主進(jìn)程負(fù)責(zé)管理工作進(jìn)程,工作進(jìn)程負(fù)責(zé)處理用戶的http請(qǐng)求。

使用瀏覽器訪問: https://192.168.1.10,如果能顯示頁面,則操作成功,如果不能顯示,請(qǐng)排查一下CENTOS防火墻配置。

補(bǔ)充說明

生成證書

cd ~
mkdir ssl && cd ssl
# 注意:一般生成的目錄,應(yīng)該放在nginx/conf/ssl目錄
# 1.創(chuàng)建服務(wù)器證書密鑰文件 server.key:
openssl genrsa -des3 -out server.key 1024
# 輸入密碼,確認(rèn)密碼,自己隨便定義,但是要記住,后面會(huì)用到。
# 2.創(chuàng)建服務(wù)器證書的申請(qǐng)文件 server.csr
openssl req -new -key server.key -out server.csr
# 輸出內(nèi)容為:
Enter pass phrase for root.key: ← 輸入前面創(chuàng)建的密碼 
Country Name (2 letter code) [AU]:CN ← 國家代號(hào),中國輸入CN 
State or Province Name (full name) [Some-State]:BeiJing ← 省的全名,拼音 
Locality Name (eg, city) []:BeiJing ← 市的全名,拼音 
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyCompany Corp. ← 公司英文名 
Organizational Unit Name (eg, section) []: ← 可以不輸入 
Common Name (eg, YOUR name) []: ← 此時(shí)不輸入 
Email Address []:admin@mycompany.com ← 電子郵箱,可隨意填
Please enter the following ‘extra’ attributes 
to be sent with your certificate request 
A challenge password []: ← 可以不輸入 
An optional company name []: ← 可以不輸入
# 4.備份一份服務(wù)器密鑰文件
cp server.key server.key.org
# 5.去除文件口令
openssl rsa -in server.key.org -out server.key
# 6.生成證書文件server.crt
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt


mkdir  /usr/local/nginx/conf/ssl
cp * /usr/local/nginx/conf/ssl/

配置nginx開機(jī)啟動(dòng)

將/usr/bin/nginx命令添加到/etc/rc.d/rc.local文件中,rc.local文件會(huì)在系統(tǒng)啟動(dòng)的時(shí)候執(zhí)行。但CentOS7建議將開機(jī)啟動(dòng)服務(wù)寫成服務(wù)描述文件添加到系統(tǒng)服務(wù)中,所以rc.local默認(rèn)沒有執(zhí)行權(quán)限,需要給它添加執(zhí)行權(quán)限。

shell> vim /etc/rc.d/rc.local
# 添加如下參數(shù)
/usr/bin/nginx

shell> chmod +x /etc/rc.d/rc.local

官方參考

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容