实战:第二十四章:ip:port改成域名的方式,并将http自动转https
  2QrAa7u9TTys 2023年11月02日 65 0


第一步:获取SSL证书

11种免费获取SSL证书的方式:​​https://www.toolmao.com/1069.html​

我选择的是阿里云的SSL免费版

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_ssl证书实战:第二十四章:ip:port改成域名的方式,并将http自动转https_nginx_02证书我选择的是Nginx下载

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_html_03第二步:配置内容分发网络

我这里使用的是内容分发网络,对境外的进行加速,境内的需要备案

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_nginx_04搜索内容分发网络,进入域名管理,添加域名

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_https_05实战:第二十四章:ip:port改成域名的方式,并将http自动转https_http_06这里会提示境外的需要开通服务

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_http_07需要把区域访问控制打开,除此之外还需要申请一下,ECDN全站加速网络——全球加速资格申请:​​https://cloud.tencent.com/apply/p/4q956obis68​

一般走正常流程要三个工作日,这个时候,你可以提交工单,人工催单,几个小时就可以通过了。

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_html_08第三步:配置ssl证书

回到域名管理,点击域名,进入详情

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_nginx_09实战:第二十四章:ip:port改成域名的方式,并将http自动转https_ssl证书_10这里面的证书配置,就是刚刚阿里云下载的ssl证书,把key文件的内容复制到私钥框里面,把pem文件复制到证书内容里面。然后Https配置下面还有个强制跳转,需要打开

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_html_11到这一步,等个五分钟左右,你就可以通过https://www.xxx.com访问了,跟你原来的访问地址:http://ip:port效果是一样的。到这一步其实就已经结束了,我已经达成了我想要的效果了:ip:port改成域名的方式,并将http自动转https。

缺点也是有的:

第一:我个人因为域名和申请的ssl证书包括服务器都不是同一家的,域名是腾讯云的,ssl证书是阿里云的,服务器是AWS的,所以看文档比较麻烦。(个人建议可以使用同一家)

第二:开启AWS加速这个是要收费的(很多公司不需要这个功能)

所以为了解决这个收费的问题,我在原有的基础上去掉了CDN全球加速的功能。

第一步:先把加速的关了

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_ssl证书_12第二步:去到DNS解析到我的域名里面把CNAME停用,开启A记录,填写你的ip

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_html_13这个时候还只是将DNS的解析调整了,服务器上面还没有配置ssl证书,原来的通过内容分发网络,第三方帮助我们配置好了,现在我们用自个的,就需要独立配置。

SSL 证书安装部署:​​https://cloud.tencent.com/document/product/400/4143​

这里我一开始选择的是宝塔linux面板,图形化界面,操作比较方便,后面因为需要安装web服务器并且架构要求服务器尽量别安装多余的插件,改成Nginx安装部署。部署文档:

​https://cloud.tencent.com/document/product/400/35244​

这里需要注意二个地方:

第一个地方是:443先本地telnet ip 端口 看看能不能用,一开始我认为服务器已经开启了,后面才发现没通,看了半天,浪费了很多时间。

第二个地方是:Nginx版本问题:后面有个配置,Nginx 版本为 nginx/1.15.0 以上请使用 listen 443 ssl 代替 listen 443 和 ssl on。

第三个地方是:之前我是使用了阿里云的ssl证书,腾讯云的域名和DNS解析,管理不方便,所以后面调整了一下,重新弄了腾讯云的ssl证书。

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_ssl证书_14实战:第二十四章:ip:port改成域名的方式,并将http自动转https_http_15进到Nginx文件夹下面

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_http_16把这二个上传到服务器上面去

由于我是使用Docker安装配置的Nginx,所以需要映射一些文件

拉取nginx:

docker pull nginx

添加挂载目录:

mkdir -p /home/nginx/{conf,conf.d,html,logs}

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_http_17注意html里面要有html文件,这个可以从镜像里面复制一份,也可以手动添加一个

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_html_18我这里是手动添加的:

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_https_19这些目录下面的文件,我是从docker里面复制出来修改的

实战:第二十四章:ip:port改成域名的方式,并将http自动转https_nginx_20实战:第二十四章:ip:port改成域名的方式,并将http自动转https_html_21主要看nginx.conf:

user  root;
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;

server {
listen 9013;
#填写绑定证书的域名
server_name www.你对应的网站域名.top;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}

server {
#SSL 访问端口号为 443
listen 443;
ssl on;
#填写绑定证书的域名
server_name www.你对应的网站域名.top;
#证书文件名称
ssl_certificate /etc/nginx/1_www.你对应的网站域名.crt;
#私钥文件名称
ssl_certificate_key /etc/nginx/2_www.你对应的网站域名.key;
ssl_session_timeout 5m;
#请按照以下协议配置
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location ~ / {
proxy_pass http://你的ip地址:你的端口;
#proxy_set_header host $host;
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#root /usr/share/nginx/html;
#index index.html index.htm;
}
}

}

启动docker:

docker run -p 9003:9012 --name nginx0908  -d \
-p 9013:443 \
-v /usr/local/1_www.网站域名_bundle.crt:/etc/nginx/1_www.网站域名_bundle.crt \
-v /usr/local/2_www.网站域名.key:/etc/nginx/2_www.网站域名.key \
-v /home/nginx/html:/usr/share/nginx/html \
-v /home/nginx/conf/nginx.conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d/default.conf \
-v /home/nginx/logs:/var/log/nginx \
nginx

我这里是将原来的html页面改成了跳成具体的某个端口,这样就可以通过https://www.xxx.com:你的端口访问了,和你原来的请求http://ip:port效果一样。

此外提供跨域问题解决方案:



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  bifOjSxj34Bv   2023年12月07日   37   0   0 nginxDockerdockernginx
2QrAa7u9TTys