证书申请
1、进入腾讯云官网,在上方直接搜索SSL,搜索到后点击立即选购;
2、点击进去后选择自定义配置,加密标准选择默认的国际标准,证书种类选择域名免费版(DV),勾选同意服务条款后选择免费快速申请;
3、申请完成后即可在我的证书中看到,但是刚申请到证书状态是待验证吧,我这个已经是验证审核后的了;
4、刚申请的证书需要去对应的域名解析的地方添加一条解析记录,
5、我们公司的域名是直接在新网申请的,所以设置解析记录的也是在新网设置,大家根据自己的实际情况去自己域名购买的地方进行配置;配置完成后去腾讯云点击验证就可以,然后就是等待审核,审核通过后就是和我上面的状态一样了,点击下载证书,将证书下载到本地,
证书安装(Nginx)
1、请在 SSL 证书管理控制台 中选择您需要安装的证书并单击下载。
2、在弹出的 “证书下载” 窗口中,服务器类型选择 Nginx,单击下载并解压缩 91-tech.cn 证书文件包到本地目录。
解压缩后,可获得相关类型的证书文件。其中包含 91-tech.cn_nginx 文件夹:
- 文件夹名称:91-tech.cn_nginx
- 文件夹内容:
- 91-tech.cn_bundle.crt 证书文件
- 91-tech.cn_bundle.pem 证书文件(可忽略该文件)
- 91-tech.cn.key 私钥文件
- 91-tech.cn.csr CSR 文件
3、将已获取到的 91-tech.cn_bundle.crt 证书文件和 91-tech.cn.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /usr/local/nginx 目录(此处为我的 Nginx 安装目录,请根据实际情况操作)下。
4、编辑 Nginx 根目录下的 nginx.conf 文件。修改内容如下:
server {
listen 80;
server_name 91-tech.cn;
return 301 https://$server_name$request_uri;
}
server {
## listen 80;
#SSL 默认访问端口号为 443
listen 443 ssl;
## server_name localhost;
#请填写绑定证书的域名
server_name 91-tech.cn;
#请填写证书文件的相对路径或绝对路径
ssl_certificate ../91-tech.cn_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key ../91-tech.cn.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
alias html/;
index index.html index.htm;
try_files $uri $uri/ @router;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'POST,GET,PUT,PATCH,DELETE,OPTIONS';
add_header Access-Control-Allow-Headers 'Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name,Token,Cookie,authorization';
}
# 这个是后端的代理,根据自己的实际情况配置
location /website/ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'POST,GET,PUT,PATCH,DELETE,OPTIONS';
add_header Access-Control-Allow-Headers 'Content-Type, X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Date, X-Api-Version, X-File-Name,Token,Cookie,authorization';
proxy_pass http://127.0.0.1:8081/website/;
}
location @router {
rewrite ^.*$ /index.html last;
}
...
5、通过执行以下命令验证配置文件问题。
nginx -t
正常来说现在就可以了,但是了,我的就出了一个问题
这个大概颜色就是我安装nginx的时候没有开启ssl功能,执行/usr/local/nginx/sbin/nginx -V
这个命令后发现我的configure arguments这个是空的
切换到nginx的源码目录后执行./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
然后再执行make
进行编译(这里不要make install,否则会覆盖安装)
备份原有已安装好的nginx:cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
停止nginx服务systemctl stop nginx.service
将刚刚编译好的nginx覆盖掉原有的nginx:cp ./objs/nginx /usr/local/nginx/sbin/nginx
启动nginx服务systemctl start nginx.service
再执行/usr/local/nginx/sbin/nginx -V
查看是否已成功加入
到这里就配置完成了,打开网站就会默认跳转到https;