服务器未开放80和443端口情况下使用caddy开启https访问

5天前学习38

前提:服务器需要能访问外网,且有个能解析的域名,并且在阿里云RAM用户获取AccessKey 和 accesskeysecret

下载源码xcaddy

github地址

解压并编译带dns插件的caddy包,我这里服务器是Ubuntu的,但是电脑是windows11的,所以需要交叉编译下

安装golang,网上很多,下载下来直接安装就可以

查看版本,确认安装

PS D:\code\xcaddy\cmd> go version
go version go1.25.6 windows/amd64

 

使用国内go代理

setx GOPROXY https://goproxy.cn,direct

 

再打开命令行,安装xcaddy

go clean -modcache
go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest

直接打包windows版本

xcaddy build --with github.com/caddy-dns/alidns

日志,第一次编译有点慢

PS D:\code\xcaddy\cmd> xcaddy build --with github.com/caddy-dns/alidns
2026/01/19 15:28:30 [INFO] absolute output file path: D:\code\xcaddy\cmd\caddy.exe
2026/01/19 15:28:31 [INFO] Temporary folder: C:\Users\ADMINI~1\AppData\Local\Temp\buildenv_2026-01-19-1528.2530769539
2026/01/19 15:28:31 [INFO] Writing main module: C:\Users\ADMINI~1\AppData\Local\Temp\buildenv_2026-01-19-1528.2530769539\main.go
package main

import (
        caddycmd "github.com/caddyserver/caddy/v2/cmd"

        // plug in Caddy modules here
        _ "github.com/caddyserver/caddy/v2/modules/standard"
        _ "github.com/caddy-dns/alidns"
)

func main() {
        caddycmd.Main()
}
2026/01/19 15:28:31 [INFO] Initializing Go module
2026/01/19 15:28:31 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe mod init caddy
go: creating new go.mod: module caddy
go: to add module requirements and sums:
        go mod tidy
2026/01/19 15:28:31 [INFO] Pinning versions
2026/01/19 15:28:31 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe get -v github.com/caddyserver/caddy/v2
go: downloading github.com/caddyserver/caddy v1.0.5
go: downloading github.com/caddyserver/caddy/v2 v2.10.2
go: downloading github.com/caddyserver/certmagic v0.24.0
go: downloading github.com/cespare/xxhash/v2 v2.3.0
go: downloading github.com/google/uuid v1.6.0
go: downloading github.com/prometheus/client_golang v1.23.0
go: downloading github.com/quic-go/quic-go v0.54.0
go: downloading golang.org/x/sys v0.34.0
go: downloading go.uber.org/zap/exp v0.3.0
go: downloading go.uber.org/zap v1.27.0
go: downloading golang.org/x/term v0.33.0
go: downloading golang.org/x/time v0.12.0
go: downloading github.com/cespare/xxhash v1.1.0
go: downloading go.uber.org/multierr v1.11.0
go: downloading google.golang.org/protobuf v1.36.6
go: downloading github.com/beorn7/perks v1.0.1
go: downloading github.com/prometheus/procfs v0.16.1
go: downloading github.com/prometheus/client_model v0.6.2
go: downloading github.com/prometheus/common v0.65.0
go: downloading github.com/caddyserver/zerossl v0.1.3
go: downloading github.com/klauspost/cpuid/v2 v2.3.0
go: downloading github.com/libdns/libdns v1.1.0
go: downloading github.com/mholt/acmez/v3 v3.1.2
go: downloading github.com/miekg/dns v1.1.63
go: downloading github.com/zeebo/blake3 v0.2.4
go: downloading golang.org/x/crypto v0.40.0
go: downloading golang.org/x/net v0.42.0
go: downloading github.com/quic-go/qpack v0.5.1
go: downloading go.uber.org/mock v0.5.2
go: downloading github.com/francoispqt/gojay v1.2.13
go: downloading github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
go: downloading golang.org/x/tools v0.34.0
go: downloading golang.org/x/mod v0.25.0
go: downloading golang.org/x/text v0.27.0
go: downloading golang.org/x/sync v0.16.0
go: added github.com/beorn7/perks v1.0.1
go: added github.com/caddyserver/caddy/v2 v2.10.2
go: added github.com/caddyserver/certmagic v0.24.0
go: added github.com/caddyserver/zerossl v0.1.3
go: added github.com/cespare/xxhash/v2 v2.3.0
go: added github.com/francoispqt/gojay v1.2.13
go: added github.com/google/uuid v1.6.0
go: added github.com/klauspost/cpuid/v2 v2.3.0
go: added github.com/libdns/libdns v1.1.0
go: added github.com/mholt/acmez/v3 v3.1.2
go: added github.com/miekg/dns v1.1.63
go: added github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822
go: added github.com/prometheus/client_golang v1.23.0
go: added github.com/prometheus/client_model v0.6.2
go: added github.com/prometheus/common v0.65.0
go: added github.com/prometheus/procfs v0.16.1
go: added github.com/quic-go/qpack v0.5.1
go: added github.com/quic-go/quic-go v0.54.0
go: added github.com/zeebo/blake3 v0.2.4
go: added go.uber.org/mock v0.5.2
go: added go.uber.org/multierr v1.11.0
go: added go.uber.org/zap v1.27.0
go: added go.uber.org/zap/exp v0.3.0
go: added golang.org/x/crypto v0.40.0
go: added golang.org/x/mod v0.25.0
go: added golang.org/x/net v0.42.0
go: added golang.org/x/sync v0.16.0
go: added golang.org/x/sys v0.34.0
go: added golang.org/x/term v0.33.0
go: added golang.org/x/text v0.27.0
go: added golang.org/x/time v0.12.0
go: added golang.org/x/tools v0.34.0
go: added google.golang.org/protobuf v1.36.6
2026/01/19 15:28:42 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe get -v github.com/caddy-dns/alidns github.com/caddyserver/caddy/v2
go: downloading github.com/caddy-dns/alidns v1.0.26
go: downloading github.com/libdns/alidns v1.0.4-libdns.v1.beta1
go: added github.com/caddy-dns/alidns v1.0.26
go: added github.com/libdns/alidns v1.0.4-libdns.v1.beta1
2026/01/19 15:28:46 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe get -v
go: downloading github.com/aryann/difflib v0.0.0-20210328193216-ff5ff6dc229b
go: downloading github.com/KimMachineGun/automemlimit v0.7.4
go: downloading github.com/dustin/go-humanize v1.0.1
go: downloading github.com/go-chi/chi/v5 v5.2.2
go: downloading github.com/smallstep/certificates v0.28.4
go: downloading github.com/spf13/pflag v1.0.7
go: downloading github.com/cloudflare/circl v1.6.1
go: downloading go.uber.org/automaxprocs v1.6.0
go: downloading github.com/smallstep/truststore v0.13.0
go: downloading gopkg.in/natefinch/lumberjack.v2 v2.2.1
protocol error: received DATA after END_STREAM
go: downloading go.step.sm/crypto v0.67.0
go: downloading golang.org/x/crypto/x509roots/fallback v0.0.0-20250305170421-49bf5b80c810
go: downloading github.com/smallstep/nosql v0.7.0
go: downloading github.com/tailscale/tscert v0.0.0-20240608151842-d3f834017e53
go: downloading github.com/google/cel-go v0.26.0
go: downloading github.com/klauspost/compress v1.18.0
go: downloading github.com/cpuguy83/go-md2man/v2 v2.0.7
go: downloading gopkg.in/yaml.v3 v3.0.1
go: downloading howett.net/plist v1.0.0
go: downloading github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
go: downloading github.com/pires/go-proxyproto v0.8.1
go: downloading github.com/Masterminds/sprig/v3 v3.3.0
go: downloading github.com/yuin/goldmark v1.7.13
go: downloading github.com/alecthomas/chroma/v2 v2.20.0
go: downloading github.com/BurntSushi/toml v1.5.0
go: downloading github.com/yuin/goldmark-highlighting/v2 v2.0.0-20230729083705-37449abec8cc
go: downloading go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.61.0
go: downloading go.opentelemetry.io/contrib/propagators/autoprop v0.62.0
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.37.0
go: downloading go.opentelemetry.io/otel v1.37.0
go: downloading go.opentelemetry.io/otel/sdk v1.37.0
go: downloading go.opentelemetry.io/otel/trace v1.37.0
go: downloading github.com/coreos/go-oidc/v3 v3.14.1
go: downloading github.com/fxamacker/cbor/v2 v2.8.0
go: downloading github.com/google/go-tpm v0.9.5
go: downloading github.com/pkg/errors v0.9.1
go: downloading github.com/smallstep/go-attestation v0.4.4-0.20241119153605-2306d5b464ca
go: downloading golang.org/x/exp v0.0.0-20250408133849-7e4ce0ab07d0
go: downloading github.com/smallstep/linkedca v0.23.0
go: downloading github.com/smallstep/cli-utils v0.12.1
go: downloading go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.37.0
go: downloading google.golang.org/grpc v1.73.0
go: downloading github.com/slackhq/nebula v1.9.5
go: downloading cel.dev/expr v0.24.0
go: downloading google.golang.org/genproto/googleapis/api v0.0.0-20250603155806-513f23925822
go: downloading github.com/stoewer/go-strcase v1.2.0
go: downloading github.com/antlr4-go/antlr/v4 v4.13.0
go: downloading dario.cat/mergo v1.0.1
go: downloading github.com/Masterminds/goutils v1.1.1
go: downloading github.com/Masterminds/semver/v3 v3.3.0
go: downloading github.com/huandu/xstrings v1.5.0
go: downloading github.com/mitchellh/copystructure v1.2.0
go: downloading github.com/shopspring/decimal v1.4.0
go: downloading github.com/spf13/cast v1.7.0
go: downloading github.com/russross/blackfriday/v2 v2.1.0
go: downloading github.com/ccoveille/go-safecast v1.6.1
go: downloading github.com/go-jose/go-jose/v3 v3.0.4
go: downloading github.com/felixge/httpsnoop v1.0.4
go: downloading go.opentelemetry.io/otel/metric v1.37.0
go: downloading github.com/sirupsen/logrus v1.9.3
go: downloading github.com/smallstep/pkcs7 v0.2.1
go: downloading github.com/smallstep/scep v0.0.0-20240926084937-8cf1ca453101
go: downloading github.com/go-jose/go-jose/v4 v4.0.5
go: downloading golang.org/x/oauth2 v0.30.0
go: downloading go.opentelemetry.io/contrib/propagators/aws v1.37.0
go: downloading go.opentelemetry.io/contrib/propagators/b3 v1.37.0
go: downloading go.opentelemetry.io/contrib/propagators/jaeger v1.37.0
go: downloading go.opentelemetry.io/contrib/propagators/ot v1.37.0
go: downloading google.golang.org/genproto v0.0.0-20190306203927-b5d61aea6440
go: downloading github.com/x448/float16 v0.8.4
go: downloading google.golang.org/api v0.240.0
go: downloading github.com/russross/blackfriday v1.5.2
go: downloading github.com/rs/xid v1.6.0
go: downloading filippo.io/edwards25519 v1.1.0
go: downloading github.com/Microsoft/go-winio v0.6.0
go: downloading github.com/mitchellh/go-ps v1.0.0
go: downloading github.com/google/go-tspi v0.3.0
go: downloading github.com/urfave/cli v1.22.17
go: downloading github.com/chzyer/readline v1.5.1
go: downloading github.com/manifoldco/promptui v0.9.0
go: downloading google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.5.1
go: downloading github.com/dgraph-io/badger v1.6.2
go: downloading github.com/dgraph-io/badger/v2 v2.2007.4
go: downloading go.etcd.io/bbolt v1.3.10
go: downloading github.com/go-sql-driver/mysql v1.8.1
go: downloading github.com/jackc/pgx/v5 v5.6.0
go: downloading github.com/mitchellh/reflectwalk v1.0.2
go: downloading github.com/dlclark/regexp2 v1.11.5
go: downloading go.opentelemetry.io/proto/otlp v1.7.0
go: downloading google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822
go: downloading github.com/go-logr/logr v1.4.3
go: downloading github.com/go-logr/stdr v1.2.2
go: downloading go.opentelemetry.io/auto/sdk v1.1.0
go: downloading github.com/dgraph-io/ristretto v0.2.0
go: downloading github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13
go: downloading github.com/golang/protobuf v1.5.4
go: downloading github.com/cenkalti/backoff/v5 v5.0.2
go: downloading github.com/google/certificate-transparency-go v1.1.8-0.20240110162603-74a5dd331745
go: downloading github.com/golang/snappy v0.0.4
go: downloading github.com/AndreasBriese/bbloom v0.0.0-20190825152654-46b345b51c96
go: downloading github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d
go: downloading github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.1
go: downloading github.com/jackc/pgpassfile v1.0.0
go: downloading github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a
go: downloading github.com/jackc/puddle/v2 v2.2.1
go: downloading github.com/shurcooL/sanitized_anchor_name v1.0.0
go: downloading github.com/mattn/go-colorable v0.1.13
go: downloading github.com/mattn/go-isatty v0.0.20
go: downloading github.com/grpc-ecosystem/grpc-gateway v1.5.0
go: downloading github.com/googleapis/enterprise-certificate-proxy v0.3.6
go: downloading cloud.google.com/go/auth/oauth2adapt v0.2.8
go: downloading cloud.google.com/go/auth v0.16.2
go: downloading cloud.google.com/go/compute/metadata v0.7.0
go: downloading github.com/google/s2a-go v0.1.9
go: downloading github.com/googleapis/gax-go/v2 v2.14.2
go: downloading cloud.google.com/go v0.37.0
go: downloading github.com/googleapis/gax-go v2.0.0+incompatible
go: downloading google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2
go: downloading cloud.google.com/go/compute v1.23.3
go: downloading cloud.google.com/go v0.120.0
2026/01/19 15:29:12 [INFO] Build environment ready
2026/01/19 15:29:12 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe list -m github.com/caddyserver/caddy/v2
2026/01/19 15:29:12 [INFO] Building Caddy
2026/01/19 15:29:12 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe mod tidy -e
go: downloading github.com/stretchr/testify v1.10.0
go: downloading go.uber.org/goleak v1.3.0
go: downloading github.com/smallstep/assert v0.0.0-20200723003110-82e2b9b3b262
go: downloading github.com/google/go-cmp v0.7.0
go: downloading github.com/kylelemons/godebug v1.1.0
go: downloading github.com/prashantv/gostub v1.1.0
go: downloading gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c
go: downloading github.com/zeebo/assert v1.3.0
go: downloading go.opentelemetry.io/otel/sdk/metric v1.36.0
go: downloading github.com/alecthomas/assert/v2 v2.11.0
go: downloading github.com/google/go-tpm-tools v0.4.5
go: downloading github.com/peterbourgon/diskv/v3 v3.0.1
go: downloading github.com/schollz/jsonstore v1.1.0
go: downloading github.com/aws/aws-sdk-go-v2/config v1.29.16
go: downloading github.com/aws/aws-sdk-go-v2/service/kms v1.41.0
go: downloading cloud.google.com/go/kms v1.22.0
go: downloading github.com/chzyer/test v1.0.0
go: downloading github.com/frankban/quicktest v1.14.6
go: downloading github.com/alecthomas/repr v0.5.1
go: downloading github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
go: downloading github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2
go: downloading github.com/kr/pretty v0.3.1
go: downloading github.com/chzyer/logex v1.2.1
go: downloading github.com/aws/aws-sdk-go-v2 v1.36.4
go: downloading github.com/hexops/gotextdiff v1.0.3
go: downloading github.com/zeebo/pcg v1.0.1
go: downloading github.com/google/btree v1.1.2
go: downloading github.com/spaolacci/murmur3 v1.1.0
go: downloading github.com/OneOfOne/xxhash v1.2.2
go: downloading cloud.google.com/go/longrunning v0.6.7
go: downloading cloud.google.com/go/iam v1.5.2
go: downloading go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0
go: downloading github.com/rogpeppe/go-internal v1.13.1
go: downloading github.com/kr/text v0.2.0
go: downloading github.com/aws/aws-sdk-go-v2/credentials v1.17.69
go: downloading github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3
go: downloading github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.31
go: downloading github.com/aws/aws-sdk-go-v2/service/ssooidc v1.30.2
go: downloading github.com/aws/aws-sdk-go-v2/service/sso v1.25.4
go: downloading github.com/aws/aws-sdk-go-v2/service/sts v1.33.21
go: downloading github.com/aws/smithy-go v1.22.2
go: downloading github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.35
go: downloading github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.35
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.12.16
go: downloading github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.12.3
2026/01/19 15:29:15 [INFO] exec (timeout=0s): C:\Program Files\Go\bin\go.exe build -o D:\code\xcaddy\cmd\caddy.exe -ldflags -w -s -trimpath -tags nobadger,nomysql,nopgx
2026/01/19 15:29:42 [INFO] Build complete: .\caddy.exe
2026/01/19 15:29:42 [INFO] Cleaning up temporary folder: C:\Users\ADMINI~1\AppData\Local\Temp\buildenv_2026-01-19-1528.2530769539

.\.\caddy.exe version
v2.10.2 h1:g/gTYjGMD0dec+UgMw8SnfmJ3I9+M2TdvoRL/Ovu6U8=

设置服务器类型

$env:GOOS="linux"
$env:GOARCH="amd64"

编译Ubuntu版本

 xcaddy build --with github.com/caddy-dns/alidns --output D:\code\xcaddy\caddy-linux-amd64

上传到服务器

编写配置文件 Caddyfile,tls里面配置的阿里云申请的密钥

v4.forstyle.cc:8091 {

    tls {
        dns alidns {
            access_key_id "your access_key_id"
            access_key_secret "your access_key_secret"
        }
    }

    reverse_proxy localhost:8080
    header Host {host}
    header X-Real-IP {remote_host}
}

 

前台启动服务

./caddy run --config Caddyfile

 

后台启动

 nohup ./caddy run --config Caddyfile &

 

扫描二维码推送至手机访问。

版权声明:本文由星光下的赶路人发布,如需转载请注明出处。

本文链接:https://forstyle.cc/zblog/post/109.html

分享给朋友: