mirror of
https://github.com/juanfont/headscale.git
synced 2026-01-12 04:10:32 +01:00
TLS handshake remote error: tls: bad certificate #494
Closed
opened 2025-12-29 02:19:05 +01:00 by adam
·
10 comments
No Branch/Tag Specified
main
update_flake_lock_action
gh-pages
kradalby/release-v0.27.2
dependabot/go_modules/golang.org/x/crypto-0.45.0
dependabot/go_modules/github.com/opencontainers/runc-1.3.3
copilot/investigate-headscale-issue-2788
copilot/investigate-visibility-issue-2788
copilot/investigate-issue-2833
copilot/debug-issue-2846
copilot/fix-issue-2847
dependabot/go_modules/github.com/go-viper/mapstructure/v2-2.4.0
dependabot/go_modules/github.com/docker/docker-28.3.3incompatible
kradalby/cli-experiement3
doc/0.26.1
doc/0.25.1
doc/0.25.0
doc/0.24.3
doc/0.24.2
doc/0.24.1
doc/0.24.0
kradalby/build-docker-on-pr
topic/docu-versioning
topic/docker-kos
juanfont/fix-crash-node-id
juanfont/better-disclaimer
update-contributors
topic/prettier
revert-1893-add-test-stage-to-docs
add-test-stage-to-docs
remove-node-check-interval
fix-empty-prefix
fix-ephemeral-reusable
bug_report-debuginfo
autogroups
logs-to-stderr
revert-1414-topic/fix_unix_socket
rename-machine-node
port-embedded-derp-tests-v2
port-derp-tests
duplicate-word-linter
update-tailscale-1.36
warn-against-apache
ko-fi-link
more-acl-tests
fix-typo-standalone
parallel-nolint
tparallel-fix
rerouting
ssh-changelog-docs
oidc-cleanup
web-auth-flow-tests
kradalby-gh-runner
fix-proto-lint
remove-funding-links
go-1.19
enable-1.30-in-tests
0.16.x
cosmetic-changes-integration
tmp-fix-integration-docker
fix-integration-docker
configurable-update-interval
show-nodes-online
hs2021
acl-syntax-fixes
ts2021-implementation
fix-spurious-updates
unstable-integration-tests
mandatory-stun
embedded-derp
prtemplate-fix
v0.28.0-beta.1
v0.27.2-rc.1
v0.27.1
v0.27.0
v0.27.0-beta.2
v0.27.0-beta.1
v0.26.1
v0.26.0
v0.26.0-beta.2
v0.26.0-beta.1
v0.25.1
v0.25.0
v0.25.0-beta.2
v0.24.3
v0.25.0-beta.1
v0.24.2
v0.24.1
v0.24.0
v0.24.0-beta.2
v0.24.0-beta.1
v0.23.0
v0.23.0-rc.1
v0.23.0-beta.5
v0.23.0-beta.4
v0.23.0-beta3
v0.23.0-beta2
v0.23.0-beta1
v0.23.0-alpha12
v0.23.0-alpha11
v0.23.0-alpha10
v0.23.0-alpha9
v0.23.0-alpha8
v0.23.0-alpha7
v0.23.0-alpha6
v0.23.0-alpha5
v0.23.0-alpha4
v0.23.0-alpha4-docker-ko-test9
v0.23.0-alpha4-docker-ko-test8
v0.23.0-alpha4-docker-ko-test7
v0.23.0-alpha4-docker-ko-test6
v0.23.0-alpha4-docker-ko-test5
v0.23.0-alpha-docker-release-test-debug2
v0.23.0-alpha-docker-release-test-debug
v0.23.0-alpha4-docker-ko-test4
v0.23.0-alpha4-docker-ko-test3
v0.23.0-alpha4-docker-ko-test2
v0.23.0-alpha4-docker-ko-test
v0.23.0-alpha3
v0.23.0-alpha2
v0.23.0-alpha1
v0.22.3
v0.22.2
v0.23.0-alpha-docker-release-test
v0.22.1
v0.22.0
v0.22.0-alpha3
v0.22.0-alpha2
v0.22.0-alpha1
v0.22.0-nfpmtest
v0.21.0
v0.20.0
v0.19.0
v0.19.0-beta2
v0.19.0-beta1
v0.18.0
v0.18.0-beta4
v0.18.0-beta3
v0.18.0-beta2
v0.18.0-beta1
v0.17.1
v0.17.0
v0.17.0-beta5
v0.17.0-beta4
v0.17.0-beta3
v0.17.0-beta2
v0.17.0-beta1
v0.17.0-alpha4
v0.17.0-alpha3
v0.17.0-alpha2
v0.17.0-alpha1
v0.16.4
v0.16.3
v0.16.2
v0.16.1
v0.16.0
v0.16.0-beta7
v0.16.0-beta6
v0.16.0-beta5
v0.16.0-beta4
v0.16.0-beta3
v0.16.0-beta2
v0.16.0-beta1
v0.15.0
v0.15.0-beta6
v0.15.0-beta5
v0.15.0-beta4
v0.15.0-beta3
v0.15.0-beta2
v0.15.0-beta1
v0.14.0
v0.14.0-beta2
v0.14.0-beta1
v0.13.0
v0.13.0-beta3
v0.13.0-beta2
v0.13.0-beta1
upstream/v0.12.4
v0.12.4
v0.12.3
v0.12.2
v0.12.2-beta1
v0.12.1
v0.12.0-beta2
v0.12.0-beta1
v0.11.0
v0.10.8
v0.10.7
v0.10.6
v0.10.5
v0.10.4
v0.10.3
v0.10.2
v0.10.1
v0.10.0
v0.9.3
v0.9.2
v0.9.1
v0.9.0
v0.8.1
v0.8.0
v0.7.1
v0.7.0
v0.6.1
v0.6.0
v0.5.2
v0.5.1
v0.5.0
v0.4.0
v0.3.6
v0.3.5
v0.3.4
v0.3.3
v0.3.2
v0.3.1
v0.3.0
v0.2.2
v0.2.1
v0.2.0
v0.1.1
v0.1.0
Labels
Clear labels
CLI
DERP
DNS
Nix
OIDC
SSH
bug
database
documentation
duplicate
enhancement
faq
good first issue
grants
help wanted
might-come
needs design doc
needs investigation
no-stale-bot
out of scope
performance
policy 📝
pull-request
question
regression
routes
stale
tags
tailscale-feature-gap
well described ❤️
wontfix
Mirrored from GitHub Pull Request
No Label
bug
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/headscale#494
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @atb00ker on GitHub (Apr 30, 2023).
Issue description
I am unable to use HTTPS for connecting with headscale with self-signed certificates.
I am seeing the following problem:
Where self-signed certificates where generated using command:
Where I have default
config.yamlwith following changes:tls_client_auth_mode: disabled, but that's doing nothing for me.tls_cert_pathandtls_key_path; however, I do want to use HTTPs thru and thru for security reasons.Could I please get any pointers for solving this?
(Sorry for asking here, cannot find mailing list and unable to join discord! 😓 )
Context info
Please add relevant information about your system. For example:
@juanfont commented on GitHub (Apr 30, 2023):
tls_client_auth_modewas deprecated, and would not have helped here.If you want to use self-signed certificates, you need to put the cert in the ca-certificates store of the clients, so the cert is trusted by them.
Basically:
cert.pemto/usr/local/share/ca-certificates/headscale.crtor similar.update-ca-certificates@loprima-l commented on GitHub (Apr 30, 2023):
A more convenient way to use HTTPS is using Headscale behind a proxy
@atb00ker commented on GitHub (May 4, 2023):
Thanks a ton, it worked.
Closing because the main issue is solved.
@loprima-l
Ah, I have tried a lot to use nginx, and following this doc: https://headscale.net/reverse-proxy/#nginx
it'll be ideal if it works; but I am not able to make it work.
Nginx is forwarding the request to
localhost:8080correctly, but thenheadscaleis silent.I ran it in debug mode and all I see is:
headscale serveis running on debug and it outputs nothing.Here is my full config yaml
Here is my full headscale nginx conf
proxy_passtoheadscale, because I see the blank 404 page when I open the url on browser.sudo tailscale up --login-server https://headscale.server.test:443, absolutely nothing happens; headscale doesn't even print any debug log.If I change
listen_addr: 0.0.0.0:8080and dosudo tailscale up --login-server https://headscale.server.test:8080; everything starts to work.If you see something silly I am doing please let me know, thanks!
@loprima-l commented on GitHub (May 6, 2023):
I can't check it know but when I came back on Monday, I'll get my eyes on it !
@atb00ker commented on GitHub (May 7, 2023):
@juanfont While the solution worked on Linux boxes; it's not working on Android.
I added the certificate in "User CAs" on Android and verified it's working using Firefox.
Yet, it seems, the Tailscale app ignores the user added CA and only checks default CAs and the handshake fails again! 😭
@juanfont commented on GitHub (May 7, 2023):
Then I am afraid the issue is not in Headscale side, but on the Tailscale client.
That being said, you can easily get a signed certificate from Let's Encrypt if you own a domain.
@Pr0pHesyer commented on GitHub (Dec 24, 2023):
Android & Linux have the same question with letsencrypt certificate
@Pr0pHesyer commented on GitHub (Dec 29, 2023):
I see,it was caused by my cert file.
Working after using chain.pem/fullchain.pem instead of cert.pem
@zeusraman commented on GitHub (Jun 17, 2024):
hi all
I am in the same boat today .. can we use TLS with certs in config file without nginx proxy ?
Would someone be kind enough to let me know what config i need to use ?
i have tried using this
tls_cert_path: "/path/cert.pem"
tls_key_path: "/path/key.pem"
and server as https://mydomain.com:8081
cheers all
@Pr0pHesyer commented on GitHub (Jun 17, 2024):
Use chain.pem/fullchain.pem instead of cert.pem