<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/interface-definitions/service_https.xml.in, branch T9338-l3vpn-multi-domain-switching</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=T9338-l3vpn-multi-domain-switching</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=T9338-l3vpn-multi-domain-switching'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-09-02T00:35:35+00:00</updated>
<entry>
<title>http-api: T8989: address OIDC review comments</title>
<updated>2026-09-02T00:35:35+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-19T07:49:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=34d1c5c87283cfe905b6925bc9181368d5cbdd0e'/>
<id>urn:sha1:34d1c5c87283cfe905b6925bc9181368d5cbdd0e</id>
<content type='text'>
- Use OpenID Connect discovery (/.well-known/openid-configuration) to
  resolve JWKS URI when jwks-url is not explicitly configured
- Add optional audience validation via new oidc audience config node
- Require exp claim in OIDC tokens
- Reject jwks-url without issuer at commit time
</content>
</entry>
<entry>
<title>http-api: T8989: add OAuth2/OIDC authentication for REST API</title>
<updated>2026-09-02T00:35:25+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-14T06:06:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b8136290e326ba8a1879a3c55eea9e0a1303fedd'/>
<id>urn:sha1:b8136290e326ba8a1879a3c55eea9e0a1303fedd</id>
<content type='text'>
Add support for validating OIDC Bearer tokens issued by external identity
providers (Keycloak, Azure AD, Okta, Vault, etc.) against the configured
JWKS endpoint.

Configuration:
  set service https api rest authentication oidc issuer &lt;url&gt;
  set service https api rest authentication oidc jwks-url &lt;url&gt;

If jwks-url is not set, it is derived from the issuer URL using the
standard OpenID Connect discovery path.

Auth priority: mTLS -&gt; VyOS JWT -&gt; OIDC -&gt; API key
</content>
</entry>
<entry>
<title>http-api: T8989: add mTLS client certificate authentication</title>
<updated>2026-08-26T18:33:34+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-11T06:45:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=0cdf7e696b4deb3c3103a596bfe4d4f167dcf4b7'/>
<id>urn:sha1:0cdf7e696b4deb3c3103a596bfe4d4f167dcf4b7</id>
<content type='text'>
Add support for mutual TLS (mTLS) authentication to the VyOS REST API.

When configured, nginx requests a client certificate and verifies it
against the configured CA chain. FastAPI reads the X-Client-Verify
header set by nginx and bypasses API key/token authentication when
the client certificate is valid.

Configuration:
  set service https certificates ca-certificate &lt;name&gt;
  set service https certificates verify-client &lt;optional|required&gt;

Note: requires TLSv1.2 due to nginx 1.22 TLSv1.3 post-handshake
authentication limitations. TLSv1.3 support pending nginx upgrade.
</content>
</entry>
<entry>
<title>http-api: T8989: add REST Bearer token authentication</title>
<updated>2026-08-26T18:33:34+00:00</updated>
<author>
<name>omnom62</name>
<email>omnom62@outlook.com</email>
</author>
<published>2026-08-04T23:14:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=f3012e652edef614d4f0ed169b320106a85d83b3'/>
<id>urn:sha1:f3012e652edef614d4f0ed169b320106a85d83b3</id>
<content type='text'>
Add JWT Bearer token support to the REST API, as an additional
authentication method alongside the existing form-field key and
X-API-Key header.

- New POST /token endpoint mints a JWT for a valid API key
- auth_required() accepts Authorization: Bearer &lt;token&gt; alongside
  existing key/X-API-Key auth
- New config nodes: service https api rest authentication
  {expiration, secret-length} (defaults: 3600s / 32 bytes)
- REST tokens use an independent signing secret from GraphQL's,
  since GraphQL may not be enabled on all deployments and the two
  subsystems have different expiry requirements
- nginx location regex updated to allow /token
- service_https.py default-value merge generalized to also apply
  to the rest node, not just graphql, so REST authentication
  defaults populate correctly on commit
</content>
</entry>
<entry>
<title>http-api: T6736: add distinct XML path for REST API</title>
<updated>2024-09-30T03:21:21+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2024-09-25T13:43:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=8183e2cc8178f5da67a918ee37c21797a05c142d'/>
<id>urn:sha1:8183e2cc8178f5da67a918ee37c21797a05c142d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>http-api: T6107: add an option to increase the request body size limit</title>
<updated>2024-03-07T20:30:01+00:00</updated>
<author>
<name>Daniil Baturin</name>
<email>daniil@baturin.org</email>
</author>
<published>2024-03-07T20:04:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=4792d39bb84991768404f69ff807e43a9979a79e'/>
<id>urn:sha1:4792d39bb84991768404f69ff807e43a9979a79e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>https: T5902: remove virtual-host configuration</title>
<updated>2024-01-09T06:29:16+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2024-01-06T09:55:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=d0d3071e99eb65edb888c26ef2fdc9e038438887'/>
<id>urn:sha1:d0d3071e99eb65edb888c26ef2fdc9e038438887</id>
<content type='text'>
We have not seen the adoption of the https virtual-host CLI option.

What it did?
* Create multiple webservers each listening on a different IP/port
  (but in the same VRF)
* All webservers shared one common document root
* All webservers shared the same SSL certificates
* All webservers could have had individual allow-client configurations
* API could be enabled for a particular virtual-host but was always enabled on
  the default host

This configuration tried to provide a full webserver via the CLI but VyOS is a
router and the Webserver is there for an API or to serve files for a local-ui.

Changes

Remove support for virtual-hosts as it's an incomplete and thus mostly useless
"thing". Migrate all allow-client statements to one top-level allow statement.
</content>
</entry>
<entry>
<title>https: T5886: migrate https certbot to new "pki certificate" CLI tree</title>
<updated>2024-01-06T07:33:33+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2024-01-05T21:35:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9ab6665c80c30bf446d94620fc9d85b052d48072'/>
<id>urn:sha1:9ab6665c80c30bf446d94620fc9d85b052d48072</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T5474: establish common file name pattern for XML conf mode commands</title>
<updated>2023-12-31T22:49:48+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2023-12-30T22:25:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=4ef110fd2c501b718344c72d495ad7e16d2bd465'/>
<id>urn:sha1:4ef110fd2c501b718344c72d495ad7e16d2bd465</id>
<content type='text'>
We will use _ as CLI level divider. The XML definition filename and also
the Python helper should match the CLI node.

Example:
set interfaces ethernet -&gt; interfaces_ethernet.xml.in
set interfaces bond -&gt; interfaces_bond.xml.in
set service dhcp-server -&gt; service_dhcp-server-xml.in
</content>
</entry>
</feed>
