nginx證書配置:
1.生成證書
2.修改nginx.conf文件,並重啓nginx服務
一、配置證書
(1)生成根密鑰和根證書
(2)生成服務端密鑰和服務端證書請求文件
(3)使用根密鑰對服務端證書請求文件進行簽名
# 第一步
~]# cd /etc/pki/CA/
~]# openssl req -new -x509 -keyout ca.key -out ca.crt 只需輸入密碼以及填寫國家,省,城市
# 第二步
~]# mkdir ../nginx/ && cd ../nginx/
~]# openssl genrsa -des3 -out server.key 2048 這裏-des3選項可以不添加,添加的話表示對私鑰進行加密,需要輸入一個加密密碼
~]# openssl req -new -key server.key -out server.csr ##其中,國家,省,城市和主機名稱必須要填,並且國家要和CA的一樣
注意:
在 進行第三步的時候,需要在CA目錄創建幾個文件
~]# cd /etc/pki/CA/
~]# touch index.txt
~]# echo 01 > index.txt
~]# mkdir newcerts
# 第三步
~]# cd /etc/pki/nginx/
~]# openssl ca -in server.csr -out server.crt -cert ../CA/ca.crt -keyfile ../CA/ca.key ##需要輸入ca的密碼串,然後問是否簽名和是否commit時,輸入y即可
證書籤名成功之後可以查看server.crt文件,如果簽名失敗,裏面是沒有內容的
二、配置nginx.conf文件
server {
listen 443 ssl; ##nginx若版本高於1.15,就應該如此配置,否則瀏覽器訪問不會成功,返回400
# listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
#
ssl_certificate "/etc/pki/nginx/server.crt"; ##nginx證書的路徑,即剛纔證書配置的路勁
ssl_certificate_key "/etc/pki/nginx/server.key"; ##nginx密鑰的路徑,即剛纔生成密鑰所在的路徑
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
#
location \ {
root /usr/share/nginx/html;
index index.html index.htm;
}
location ~ \.php$ {
root /php/;
fastcgi_pass unix:///dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
配置完成即可重啓服務:
~]# nginx -s reload
然後即可使用瀏覽器訪問:https://192.168.99.100/,不過此時的nginx服務證書沒有得到瀏覽器的信任,所以會有如下顯示,不過點擊高級
也可以繼續訪問,想要瀏覽器信任證書,需要進行第三步。