阿里云SSL免费证书申请及Nginx示例配置流程,其他服务器证书配置可以百度搜一下
目录
一、登录[阿里云数字证书管理服务控制台]
二、购买证书
左侧栏的【SSL证书管理】–【免费证书】–【立即购买】
产品选择【个人测试证书】,购买数量选择【20】,其他服务选择【不需要】,勾选同意协议,一共是0元。
三、免费SSL证书绑定域名
1、阿里云购买的域名绑定配置
1)自动DNS验证
在阿里云购买的域名可以自动验证,直接自动DNS验证就行
下滑,填好后提交审核。
可以点进去看一下,
等几分钟就会完成。
2)下载证书
下载对应的证书文件
3)nginx的证书配置
打开nginx.conf,搜索ssl,如果还没配置ssl,可看下面代码配置一下
ssl的server :将证书文件解压后放在配置的路径上,路径最后的证书名称要修改成对应的证书名称。(路径配的是windows的,Linux自行修改一下)
#默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
events {
#单个业务进程可接受连接数
worker_connections 1024;
}
http {
#引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
include mime.types;
#如果mime类型没匹配上,默认使用二进制流的方式传输。
default_type application/octet-stream;
#使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
sendfile on;
#保持链接时间
keepalive_timeout 65;
#vhost虚拟主机
server {
#监听端口号
listen 80;
#主机名\域名
server_name localhost;
#匹配路径url,样例:http://nginx.org/en/download.html
location / {
#文件根目录,相对于nginx安装根目录路径
root html;
#默认页名称,访问先到访页面
index index.html index.htm;
}
#服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
error_page 500 502 503 504 /50x.html;
#报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
location = /50x.html {
root html;
}
}
#ssl的server
server {
443端口,ssl协议
listen 443 ssl;
#server_name默认是localhost,修改成对应IP/域名
server_name 192.168.222.130 lingran.website;
#两个证书文件所在的路径
ssl_certificate C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/lingran.website.pem;
ssl_certificate_key C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/lingran.website.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
}
}
2、非阿里云购买的域名绑定配置
1)文件验证
创建
下滑
配置验证,将验证文件下载。
2)nginx的验证文件配置
打开nginx.conf,搜索ssl,如果还没配置ssl,可看下面代码配置一下
ssl的server :将下载的验证文件上传到对应路径下(记得解压出来,不知道截图中的代码在哪一段可以搜一下)
(路径配的是windows的,Linux自行修改一下)
#默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
events {
#单个业务进程可接受连接数
worker_connections 1024;
}
http {
#引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
include mime.types;
#如果mime类型没匹配上,默认使用二进制流的方式传输。
default_type application/octet-stream;
#使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
sendfile on;
#保持链接时间
keepalive_timeout 65;
#vhost虚拟主机
server {
#监听端口号
listen 80;
#主机名\域名
server_name localhost;
#匹配路径url,样例:http://nginx.org/en/download.html
location / {
#文件根目录,相对于nginx安装根目录路径
root html;
#默认页名称,访问先到访页面
index index.html index.htm;
}
#服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
error_page 500 502 503 504 /50x.html;
#报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
location = /50x.html {
root html;
}
}
#ssl的server
server {
443端口,ssl协议
listen 443 ssl;
#server_name默认是localhost,修改成对应IP/域名
server_name 192.168.222.130 lingran.website;
#两个证书文件所在的路径
ssl_certificate C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/lingran.website.pem;
ssl_certificate_key C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/lingran.website.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
#ssl文件验证文件路径配置
location /.well-known/pki-validation/ {
alias 'C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/';
}
}
}
3)验证
配置好后回阿里云证书网页验证
4)下载证书
5)nginx的证书配置
打开nginx.conf,搜索ssl,如果还没配置ssl,可看下面代码配置一下
ssl的server :将证书文件解压后放在配置的路径上,路径最后的证书名称要修改成对应的证书名称。(路径配的是windows的,Linux自行修改一下)
#默认为1,表示开启一个业务进程。根据服务器核数来配置,一般1个核对应1个进程
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
events {
#单个业务进程可接受连接数
worker_connections 1024;
}
http {
#引入http mime类型,引入在conf文件下的mime.types文件,让浏览器知道识别文件后缀名后该如何展示
include mime.types;
#如果mime类型没匹配上,默认使用二进制流的方式传输。
default_type application/octet-stream;
#使用高效网络传输,也就是数据0拷贝,直接传输数据。未开启sendfile
sendfile on;
#保持链接时间
keepalive_timeout 65;
#vhost虚拟主机
server {
#监听端口号
listen 80;
#主机名\域名
server_name localhost;
#匹配路径url,样例:http://nginx.org/en/download.html
location / {
#文件根目录,相对于nginx安装根目录路径
root html;
#默认页名称,访问先到访页面
index index.html index.htm;
}
#服务端报错后报错编码对应页面。样例:http://nginx.org/50x.html
error_page 500 502 503 504 /50x.html;
#报错后识别到域名后面跟了/50x.html,则匹配到根目录root下的html文件夹
location = /50x.html {
root html;
}
}
#ssl的server
server {
443端口,ssl协议
listen 443 ssl;
#server_name默认是localhost,修改成对应IP/域名
server_name 192.168.222.130 lingran.website;
#两个证书文件所在的路径
ssl_certificate C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/lingran.website.pem;
ssl_certificate_key C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/lingran.website.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
#ssl文件验证文件路径配置
location /.well-known/pki-validation/ {
alias 'C:/Users/Administrator/Desktop/nginx-1.25.5/ssl/';
}
}
}
6)重启nginx或重新加载配置
#。测试配置是否正确,实际环境中都会先测试一下,再重启弎或重新加载配置
nginx -t
#重新加载配置
nginx -s reload
注:如果重新加载配置不行,那就直接重启Nginx
结束