nginx http改为https访问
参考地址:原文: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,如果是域名就写域名)