SSL证书是遵循SSL/TLS协议的数字证书,由受信任的数字证书颁发机构(CA)验证服务器身份后颁发,具备身份验证和加密传输功能。该证书通过公钥加密技术建立客户端与服务器的安全通道,防止数据泄露和篡改,包含证书颁发机构、有效期、公钥等信息,并通过域名所有权验证流程完成签发。主要类型包括域名验证型(DV)、组织验证型(OV)和扩展验证型(EV),覆盖单域名、通配符、多域名及代码签名等应用场景。

使用OpenSSL生成证书,所以首先下载OpenSSL
https://slproweb.com/products/Win32OpenSSL.html
不再配置环境变量,直接进入安装目录,例如:C:\Soft\OpenSSL-Win64\bin
在文件夹下执行命令行操作
创建私钥:
./openssl genrsa -des3 -out server.key 1024
创建csr证书:
./openssl req -new -key server.key -out server.csr
复制文件:
copy server.key server2.key
去除密码:
./openssl rsa -in server2.key -out server.key
生成 crt 证书:
./openssl x509 -req -days 365 -in server.csr -signkey server.key

注意:有的版本是直接把CRT生成到目录了,后来版本是直接控制台打印,此时,需要在该目录创建一个文本名字为server.crt内容就是控制台打印的内容

然后在nginx指定站点的vhost配置文件中增加监听SSL的端口
server
{
listen 10015;
listen 50015 ssl; # 增加 SSL 监听
server_name www.opsdog_demo.com;
index index.php index.html index.htm default.php default.htm default.html;
root D:/Soft/nginx-1.25.2/www/opsdog_demo;
ssl_certificate D:/Soft/nginx-1.25.2/vhost/server.crt; # 增加 指向您的证书文件
ssl_certificate_key D:/Soft/nginx-1.25.2/vhost/server.key; # 增加 指向您的私钥文件
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
location / {
root D:/Soft/nginx-1.25.2/www/opsdog_demo;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log D:/Soft/nginx-1.25.2/logs/opsdog_demo.error.log;
access_log D:/Soft/nginx-1.25.2/logs/opsdog_demo.log;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log D:/Soft/nginx-1.25.2/logs/opsdog_demo.error.log;
access_log D:/Soft/nginx-1.25.2/logs/opsdog_demo.log;
}
access_log D:/Soft/nginx-1.25.2/logs/opsdog_demo.log;
error_log D:/Soft/nginx-1.25.2/logs/opsdog_demo.error.log;
}此时,访问10015还是HTTP协议,访问50015就是HTTPS协议,但是因为这是我们自己生成证书,浏览器会进行安全提示

点击高级,继续访问即可
Java小强
未曾清贫难成人,不经打击老天真。
自古英雄出炼狱,从来富贵入凡尘。
发表评论: