前言
本文演示如何給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