Windows Docker Desktop的使用

下载安装Docker Desktop

https://docs.docker.com/desktop/windows/install/

下边的提示需要安装WSL2,暂时不管它,直接装Docker

安装Docker的时候提示需要安装WSL2,让他自动安装

安装结束后,提示重启,打开Docker,提示未安装WSL2,给了一个微软的文档,打开文档继续安装WSL即可。

当打开Docker提示要测试Hello Worl时,证明Docker已经安装成功。

接下来在cmd中pull容器,执行对应的docekr run命令就可以成功运行容器了

访问对应的 http://localhost:8080/ 就可以看到对应的成功页面。

申请SSL证书

我的域名是在腾讯云购买,腾讯云提供免费为期一年的证书

可以在这里申请:https://console.cloud.tencent.com/ssl/dsc/apply

  • 私钥密码可以填空
  • 最好选择DNS验证

申请成功后,去下载对应的证书文件,这个稍后会用到。

因为在本地电脑上使用Docker,一般是以测试为目的的,这个免费的一年证书已经可以满足我们的需求,等到一年后证书到期,再去申请,将对应的证书文件放到本地ssl目录就可以继续使用,并不需要去用acme.sh来进行定时验证证书的有效期。

哦,这里不要忘了给域名添加一个A记录,ip是127.0.0.1

你也可以使用openssh生成证书

下载Nginx

官网,点击zip后缀的压缩包进行下载,也就是第三列,我选择的是Stable version

在电脑上找一个目录,将Nginx解压,解压后,我的路径是C:\Users\yourname\dev-env\nginx-1.20.2

在cmd中打开此路径,启动Nginx,不要直接双击nginx.exe,界面一闪而过,不报错,基本上就Nginx服务器就跑起来了

输入 https://localhost/ 查看测试页面,提示Welcome to nginx!代表安装成功

配置证书文件

在Nginx目录下,新建一个ssl文件夹,放置所有的证书文件,便于管理。

在路径C:\Users\yourname\dev-env\nginx-1.20.2\ssl下放key和pem文件,也可以多建一级目录,方便管理别的网站证书。

写conf配置文件,./conf/nginx.conf

最下边提供了一个ssl的模板,复制这些内容,再取消注释,开始写对应的内容

  • server_name的localhost改为自己网站域名
  • cert.pem改成证书的相对路径,如./ssl/abc.example.com/cert.pem
  • cert.key改成证书的相对路径,如./ssl/abc.example.com/key.pem
  • location处参考这里
location / {
#root html;
#index index.html index.htm;
proxy_set_header host $host;
proxy_pass http://127.0.0.1:8080/;
}
  • 启用强制使用https,就是增加一个listen 80和if语句

最后的内容参考如下:

# HTTPS server
#
server {
listen 80;
listen 443 ssl http2;
server_name abc.example.com;
#HTTP_TO_HTTPS_START
if ($server_port !~ 443){
rewrite ^(/.*)$ https://$host$1 permanent;
}
ssl_certificate ./ssl/abc.example.com_nginx/cert.pem;
ssl_certificate_key ./ssl/abc.example.com_nginx/cert.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

location / {
#root html;
#index index.html index.htm;
proxy_set_header host $host;
proxy_pass http://127.0.0.1:8080/;
}
}

至此配置完成

nginx -s reload

访问http://abc.example.com/观察是否成功强制启用https,正常是会跳转到https的

如果用了clash、v2rayN等代理客户端,记得将你的域名加入白名单,进行本地直连。具体方法可自行百度,避免将你的域名走代理线路。

懒得截图了,如果你配置的过程中有不清楚的地方,请留言,我将补上对应的截图使过程更详细。