# Self-hosted instance with HTTPS

**URL:** <https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469>\
**Category:** Uncategorized\
**Created:** [February 16, 2022, 10:56am UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469 "2022-02-16T10:56:41Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![mg64ve](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mg64ve](https://vaultwarden.discourse.group/u/mg64ve)\
**Post date:** [February 16, 2022, 10:56am UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469/1 "2022-02-16T10:56:41Z")

</div>

Hello,

I have been using bitwarden\_rs on aarch64 for years and I am now migrating to vaultwarden.  
I have my own VPN and I do not expose any application so I am using VPN to connect to my self-hosted instance.  
I would like to use HTTPS instead of HTTP for more security.  
I have had a quick look to the documentation but I do not see this case.  
I do not have any domain to configure in caddy and if I use a fake one caddy fails in gettting the certificate.  
Do you have any recommendation in this case?

---

<div class="post-metadata">

**Author:** ![mg64ve](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mg64ve](https://vaultwarden.discourse.group/u/mg64ve)\
**Post date:** [February 16, 2022, 1:54pm UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469/2 "2022-02-16T13:54:35Z")

</div>

Just changed the following lines in docker-compose.yml:

```
environment:
  - CADDY_TLS_CERT=/config/caddy/cert.pem
  - CADDY_TLS_KEY=/config/caddy/key.pem

```

and the following in Caddyfile:

```auto
tls {$CADDY_TLS_CERT} {$CADDY_TLS_KEY}

```

From my laptop it is ok through the browser.  
I have generated a .crt file and put in my android 11 phone but I am getting the following error:

 ![ssl_error](https://global.discourse-cdn.com/free1/uploads/vaultwarden/original/1X/8a66bb0df71af48b5596fa88c119f117faf05554.jpeg)

---

<div class="post-metadata">

**Author:** ![jjlin](https://avatars.discourse-cdn.com/v4/letter/j/e19adc/32.png) [@jjlin](https://vaultwarden.discourse.group/u/jjlin)\
**Post date:** [February 16, 2022, 8:14pm UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469/3 "2022-02-16T20:14:27Z")

</div>

> **[Running a private vaultwarden instance with Let's Encrypt certs ·...](https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let's-Encrypt-certs)**
>
> Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden\_rs - Running a private vaultwarden instance with Let's Encrypt certs · dani-garcia/vaultwarden Wiki

---

<div class="post-metadata">

**Author:** ![mg64ve](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mg64ve](https://vaultwarden.discourse.group/u/mg64ve)\
**Post date:** [February 18, 2022, 4:55pm UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469/4 "2022-02-18T16:55:37Z")

</div>

Thank you for you hint @jjlin !  
I could make it working.  
However what about the following statement:

> If you don’t already have an account, create one at [https://www.duckdns.org/](https://www.duckdns.org/). Create a subdomain for your vaultwarden instance (e.g., [my-vw.duckdns.org](http://my-vw.duckdns.org)), setting its IP to your vaultwarden host’s private IP (e.g., 192.168.1.100).

It is clear that caddy needs to [my-vw.duckdns.org](http://my-vw.duckdns.org) domain in the HTTPS call in order to work.  
But if I use dig to query the duckdns domain I am getting an empty IP address.  
In Linux and Windows I can quickly solve this issue putting a static DNS mapping in the /etc/hosts but what about Android devices?  
What solution do you recommend?

---

<div class="post-metadata">

**Author:** ![jjlin](https://avatars.discourse-cdn.com/v4/letter/j/e19adc/32.png) [@jjlin](https://vaultwarden.discourse.group/u/jjlin)\
**Post date:** [February 18, 2022, 5:55pm UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469/5 "2022-02-18T17:55:16Z")

</div>

The [duckdns.org](http://duckdns.org) subdomain should resolve to your private IP. If it doesn’t, flush your DNS resolver cache, or see the troubleshooting section

> **[Running a private vaultwarden instance with Let's Encrypt certs ·...](https://github.com/dani-garcia/vaultwarden/wiki/Running-a-private-vaultwarden-instance-with-Let's-Encrypt-certs#troubleshooting)**
>
> Unofficial Bitwarden compatible server written in Rust, formerly known as bitwarden\_rs - Running a private vaultwarden instance with Let's Encrypt certs · dani-garcia/vaultwarden Wiki

---

<div class="post-metadata">

**Author:** ![mg64ve](https://avatars.discourse-cdn.com/v4/letter/m/ac91a4/32.png) [@mg64ve](https://vaultwarden.discourse.group/u/mg64ve)\
**Post date:** [February 20, 2022, 9:20am UTC](https://vaultwarden.discourse.group/t/self-hosted-instance-with-https/1469/6 "2022-02-20T09:20:45Z")

</div>

This is solved. I have just used my router.  
Thanks.
