Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions custom-recipes/buildernet/mkosi/playground.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,26 @@ description: Deploy the stack with the BuilderNet mkosi image (QEMU)
recipe:
builder-vm:
services:
attested-tls-proxy:
image: ghcr.io/flashbots/attested-tls-proxy
tag: "1.0.1"
args:
- server
- --listen-addr
- 127.0.0.1:7000
- --server-attestation-type
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both --server-attestation-type none and --allowed-remote-attestation-type none disable attestation verification. This is expected for local dev, but worth a comment in the YAML for clarity so future readers understand this is intentional and must not be used in production.

- none
- --allowed-remote-attestation-type
- none
- --tls-private-key-path
- /server.key
- --tls-certificate-path
- /server.crt
- 127.0.0.1:8000
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The last positional argument 127.0.0.1:8000 is the backend/upstream address being proxied to. What service is expected to be listening on port 8000? There's no depends_on configured for this service, so if the upstream isn't ready when the proxy starts, connections will fail. Consider adding a depends_on or a ready_check if the upstream service is defined elsewhere in the recipe.

files:
"/server.key": "server.key"
"/server.crt": "server.crt"

builder:
lifecycle_hooks: true
init:
Expand Down
19 changes: 19 additions & 0 deletions custom-recipes/buildernet/mkosi/server.crt
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDCTCCAfGgAwIBAgIUJiyepwRfje5+tjuPhiA9uWQj4WgwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTI2MDIxMjAwMzMyOVoXDTI3MDIx
MjAwMzMyOVowFDESMBAGA1UEAwwJbG9jYWxob3N0MIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAlLiVis9jbau8jlwE2uwnphidIuanbWdPJP4KQyrXsq7/
DnF02qnghl9nT4bHSMUYCciOS2PNp9DH2ZWUJwX3tEO1nsT4V0msdYglz5x/1sYn
3hqI8U7GEh3NAA0qkvzEdupyR3FhioRQSrAO6CMOoK84CtwcbCg8+sl1VXJgH7s6
D2daEF3HyxaX4EQKj+vpZQ/TsOSRq2FFeJWtvOCHAczPk2A/3/kLqN2wlxmlJ6Dt
hMoXg8ZwYZKdDIW0qkvtAfvaee0AB4M2OwRQ8Hxgqb+kqMAn7Goo2WxZyIjQ6Mvi
Fl6Ljhp7f4G4RLb0ramVLCbGw3LHEEmQwhbb6i3Z2wIDAQABo1MwUTAdBgNVHQ4E
FgQULJFWsw3onq6iTBFmznbdp1CNoI4wHwYDVR0jBBgwFoAULJFWsw3onq6iTBFm
znbdp1CNoI4wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAjZor
0q0GiMU5D5puCVPEBexXzSeaATSxnQj88wjKYhYnsljniMS78TSNwGqHZQF5y4/M
50S65+eNySfb5KP+3yKMQbVZwM+LCZkifQGaLKat6MqWS5blTMNJuGZAxTM8ba3K
RmidXHhio8VuR+gItOaB3tyYYEGKmDlzajFne68dwGTe9hwzmgqLVzDIE3GFxJ/H
lScxoqF0hiqtkhf8DxrFgC7IOLdItYaZAQluLKnGWS/0tmSYP/pxkaGL3m7M1G35
egYidvH/Z0IJ42S+7Y6a/yhZaqMFqnMHd3rqobMUeUnCJd3MSJp1BRCf03u1JuIe
917M8ZdcpnSZwd78FA==
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions custom-recipes/buildernet/mkosi/server.key
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Security concern: Private key committed to repository.

Even if this is a self-signed key for local development/testing, committing private keys to a public repository is a bad practice:

  1. Credential hygiene - It normalizes committing secrets to version control. Anyone cloning this repo gets this key, and it could be mistakenly used beyond local dev.
  2. Key rotation - If this key ever needs to be rotated, it remains in git history forever.

Consider:

  • Generating the key/cert pair at runtime (e.g., in an init step or as an artifact) instead of checking them in. The attested-tls-proxy or a simple openssl command in an init script could generate ephemeral certs.
  • If they must be static files, add a clear comment in the YAML or a README explaining they are intentionally throwaway dev-only credentials.

MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCUuJWKz2Ntq7yO
XATa7CemGJ0i5qdtZ08k/gpDKteyrv8OcXTaqeCGX2dPhsdIxRgJyI5LY82n0MfZ
lZQnBfe0Q7WexPhXSax1iCXPnH/WxifeGojxTsYSHc0ADSqS/MR26nJHcWGKhFBK
sA7oIw6grzgK3BxsKDz6yXVVcmAfuzoPZ1oQXcfLFpfgRAqP6+llD9Ow5JGrYUV4
la284IcBzM+TYD/f+Quo3bCXGaUnoO2EyheDxnBhkp0MhbSqS+0B+9p57QAHgzY7
BFDwfGCpv6SowCfsaijZbFnIiNDoy+IWXouOGnt/gbhEtvStqZUsJsbDcscQSZDC
FtvqLdnbAgMBAAECggEANUB013vT++CbBxR+7o7R0aENnwIdIEj2J2ZJcWyFSKdt
j5Pjhip+yU6e9PRrJizgoxwri2YkrPrOnKP5JRH3dJYsEbowvDyWoo0KEPFWOya/
/sDcmR8eQD1oeqS8Ql580KG5Isi/5vPitiOdatSmt7WV6RmQmc+8qgX53As0zRdW
+HSIRcEgDpBKqsSs/TSHJcKjGIpVaJkfimY/p6xTmQ/SPOQ+Zw8zo3OigQU6dD3P
fVHq5avab1+uZ8dby3HPZ7xwzETeNIVP7OhGLBK4hz2Nyp7HIuDH/zydeQ90p1/H
eXLFJbcw6uZUTMEwTqEbQ0qDiFkMRgo+3J4X1ju05QKBgQDHuq4HAYI1kGBecaLt
r2ADLQBrjqmFSvEoUO4VeCP8ttuL/lUZTZadWIzyzzPJ0agq+1UFJDbU0p4/BHim
0PRHz9QWF5W8HuLFoBLH1ZCc7lR9jvZPacoDbIW5VrXMI+CbZ44t/cgJUVqBevOJ
VU9NvQo1k+WRjMXtPqmdyPKkdwKBgQC+nvomUmXBFm34bHthcUtqs8XCsx8dsLfZ
31LfpIC450Qo1KIf+VKAWbG9nZK+3Px0ohX1M4HLpL/zf5c9Xxk5hDc9zQfeXgwf
9lgCjZrRQ+3215XdwBrnKT8XpEkR4ka+5NrzqF+CH3/dfX9bOS4+z7sn18aKdP5w
WG3BhCqCvQKBgQCntVMnwtaJD6A77YN3vYkLYaA2sGYb7J+u0LX6BRWCwDB9zqO6
SXIs0QwZXm8ICioBXWU4mf4ImooSNDjzKgXUvuhBXLB4dB7K/uyGLAfwHheIDqE4
cYYVdeybgfnJXl7dXwj+CVkMqekrTAhuytl6Vz/ZWUStAN25pqJaQT+tZQKBgECM
NMilPi+UGMj2cxEb/B21olG7td2n6ZmtNbLlUXFLXpk053FMS9OKi9VZdkeLLTGR
cT4Gov0CXL1nhx8RBMmlK8+RjgiOcCyijkrPCI20IvBjMCxW0MVWAjdPOi8EIFCj
zkCT00OMxw+JX4bUZgR+8zEar/BSjZYdW40b5AlBAoGBAIZC+HhJpdJxNoUnndqj
x0nvWM5ZrnPa/6QXyMNn52vbqG7ZMyYCHwDXWJfBfxM9wdsMJKoH8pES9BF9Qr4o
Vv7hb/t9kbB0mg2QgxRTFwiGW06LU03u/4YhluwePEHydUoai+hTV35rbAaKiNE9
QXzE0i3NWnSqX3hksZSn+UD5
-----END PRIVATE KEY-----