Windows服务器nginx多个二级域名部署ssl证书超详细步骤(https)
下面使用腾讯云进行演示。
一、申请免费的SSL证书
参考腾讯云官方文档即可:https://cloud.tencent.com/document/product/400/6814
由于是免费的ssl证书,且DVSSL证书审核采用的是非人工审核,即审核时间极短(一般短着几十秒,长着一两分钟)
这个过程中,DNS解析 DNSPod自动添加记录。即自动添加DNS验证
二、配置nginx
将SSL证书下载下来,上传至云服务器。
解压之后将key文件和pem文件提取出来。
打开nginx文件目录下conf文件夹。
以下指明的端口都需要在云服务器管理面板开启相应端口的防火墙(添加规则)
http {
#防止二级域名过长,nginx解析不了的问题,必须是6的倍数(即当二级域名过长,增大即可)。
server_names_hash_bucket_size 64;
include 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 logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
server {
#nginx监听端口
listen 520;
#监听ssl端口
listen 443 ssl;
#绑定的二级域名
server_name love.abc.cn;
#ssl on;
#pem以及key所在文件夹
ssl_certificate C:/Users/Administrator/Desktop/ssl/love/love.abc.cn.pem;
ssl_certificate_key C:/Users/Administrator/Desktop/ssl/love/love.abc.cn.key;
#默认配置
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#静态html页面所在文件夹(可以是相对路径也可以是绝对路径)
root C:/Users/Administrator/Desktop/heart;
#启动页面
index index.html index.htm;
}
#同上
server {
listen 80;
listen 443 ssl;
server_name filebrowser.abc.cn;
#ssl on;
ssl_certificate C:/Users/Administrator/Desktop/ssl/filebrowser/filebrowser.abc.cn.pem;
ssl_certificate_key C:/Users/Administrator/Desktop/ssl/filebrowser/filebrowser.abc.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
#charset utf-8;
location / {
#nginx反向代理默认配置
#避免多个二级域名(同样的公网IP)绑定多个端口ngnix反向代理不了的问题
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
#目的转发端口(应用程序进程所绑定的IP及端口号)
proxy_pass http://localhost:81;
#默认配置
proxy_redirect off;
break;
}
}
#同上
server {
listen 80;
listen 443 ssl;
server_name git.abc.cn;
#ssl on;
ssl_certificate C:/Users/Administrator/Desktop/ssl/git/git.abc.cn.pem;
ssl_certificate_key C:/Users/Administrator/Desktop/ssl/git/git.abc.cn.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
charset utf-8;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://localhost:82;
proxy_redirect off;
break;
}
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
三、nginx常用命令
首先我们需要到nginx.exe所在文件路径,输入cmd,然后按下回车键打开DOS界面。
常用的可执行的nginx命令
- start nginx(启动nginx)
- nginx.exe -s reload(重启nginx)
- nginx.exe -s stop或者nginx.exe -s quit(关闭nginx)
启动nginx之后,我们就可以通过https访问我们的域名了!