步骤 1: 生成私钥文件
使用 OpenSSL 生成私钥文件。在生成私钥时,你需要输入密码来保护这个私钥。
openssl genpkey -algorithm RSA -out wsn.key
步骤 2: 生成证书签名请求 (CSR)
使用上一步生成的私钥来创建证书签名请求(CSR)文件。这个步骤会要求提供一些组织信息和域名信息。
openssl req -new -key wsn.key -out wsn.csr
会要求输入下面内容
输出内容为:
Enter pass phrase
for
root.key: 输入前面创建的密码
Country Name (
2
letter code) [AU]:CN 国家代号,中国输入CN
State or Province Name (full name) [Some-State]:BeiJing 省的全名,拼音
Locality Name (eg, city) []:BeiJing 市的全名,拼音
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Yvioo 公司英文名(可以随便输入)
Organizational Unit Name (eg, section) []: 单位名 可以不输入
Common Name (eg, YOUR name) []: 输入你的名字
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 []: 可以不输入
步骤 3: 使用 CSR 生成自签名证书
用上一步生成的 CSR 文件签名,生成自签名证书。
openssl x509 -req -days 400 -in wsn.csr -signkey wsn.key -out wsn.crt
-days
参数可以指定证书的有效天数,这里设置为 365 天,你可以根据需求进行更改。
步骤 4: 配置 Nginx 使用证书
将生成的 wsn.key
和 wsn.crt
文件放置在 Nginx 配置所指向的路径中,并在 Nginx 配置中指定 SSL 相关的配置
server {
listen 443 ssl;
server_name example.com; # 填写你的域名
ssl_certificate /path/to/wsn.crt; # 指向你的证书文件
ssl_certificate_key /path/to/wsn.key; # 指向你的私钥文件
# 其他 SSL 配置项
# ...
}
步骤 5: 重启 Nginx
重新加载或重启 Nginx 以应用新的配置。
sudo systemctl restart nginx
完整的 nginx配置文件
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
# HTTP to HTTPS redirection
server {
listen 80;
server_name localhost; # 替换成你的域名
location / {
return 301 https://$host$request_uri;
}
}
# HTTPS server block
server {
listen 443 ssl;
server_name localhost; # 替换成你的域名
ssl_certificate /etc/nginx/ssl/wsn.crt;
ssl_certificate_key /etc/nginx/ssl/wsn.key;
# 根据需要设置其他 SSL 选项,例如 HSTS、OCSP、会话缓存等等
location / {
proxy_pass http://192.168.137.115:8087;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
No Comments