參考地址:原文:https://www.cnblogs.com/Faquir/p/10867984.html
感謝這位大佬。
- 生成根證書私鑰、生成根證書請求、創建自簽發根證書,
#生成根證書私鑰
openssl genrsa -out root.key 2048
#生成根證書請求
openssl req -new -key root.key -out root.csr
#用根證書私鑰自簽生成根證書
openssl x509 -req -in root.csr -extensions v3_ca -signkey root.key -out root.crt
- 生成服務器證書私鑰、生成服務器證書請求、使用根證書私鑰簽發服務器證書,這里注意此服務器證書的commonName需要設置成nginx配置文件中的server_name,保持一致。
#生成服務器證書私鑰
openssl genrsa -out server.key 2048
#生成服務器證書請求
openssl req -new -key server.key -out server.csr
#生成服務器證書
openssl x509 -days 365 -req -in server.csr -extensions v3_req -CAkey root.key -CA root.crt -CAcreateserial -out server.crt -extfile openssl.cnf
這里有個openssl.cnf文件需要注意,里面描述了需要頒發的服務器證書的一些信息,內容如下,根據需要修改內容:
[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req
[req_distinguished_name]
countryName = CN
countryName_default = CN
stateOrProvinceName = Guizhou
stateOrProvinceName_default = Guizhou
localityName = Guizhou
localityName_default = Guizhou
organizationalUnitName = (如果網頁訪問是ip就寫ip,如果是域名就寫域名)
organizationalUnitName_default = (如果網頁訪問是ip就寫ip,如果是域名就寫域名)
commonName = (如果網頁訪問是ip就寫ip,如果是域名就寫域名)
commonName_max = 64
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
3.2 nginx配置
打開nginx配置中HTTPS server部分的注釋,修改server_name、ssl_certificate、ssl_certificate_key、location中的root等字段。
[root@wms-gy-yy1 ~]# cat /etc/nginx/conf.d/xxx-httpd.conf
upstream jwmsService {
server 172.17.11.207:8080;
server 172.17.11.212:8080;
}
server {
listen 443 ssl;
server_name (如果網頁訪問是ip就寫ip,如果是域名就寫域名);
#ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location = / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 404 405 /index.html;
}
3.3 瀏覽器訪問
https://(如果網頁訪問是ip就寫ip,如果是域名就寫域名)