Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
29 changes: 20 additions & 9 deletions deploy/nginx/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -121,15 +121,26 @@ do not own.
Deployed environments present certificates the server already holds. This box
needs exactly two:

| | |
| ------------------- | ----------------------------------------------- |
| `beta.reactome.org` | the site |
| `dev.reactome.org` | the retired host, so its 503 is not a TLS error |

and eventually only one, when the Angular site is the one going forward. The
wikis live on the release machine; `login.dev` is gone. The `reactome.org`
certificate here is presented only because the retired vhost lists that name as
an alias — production serves it.
| | |
| ------------------- | ----------------------------------------------------------- |
| `beta.reactome.org` | the site |
| `dev.reactome.org` | the retired host, so its 503 is not a TLS error |
| `reactome.org` | the same, for the two aliases the retired vhost answers for |

The wikis lived here as leftovers and were deleted on 2026-09-16, along with the
long-expired `login.dev`.

The third is easy to talk yourself out of. Production serves `reactome.org`, so
it is tempting to drop the certificate — but this box still _answers_ for that
name and for `www`, because the retired vhost lists them as aliases. Drop the
certificate and those names get beta's instead: a name mismatch, so a browser
security warning where there is currently a clean 503. A worse retirement than
the one being replaced.

So all three certificates must renew without Apache before the cutover, not two.
`reactome.org` was still on the apache authenticator after the first migration
pass — worth checking rather than assuming, since the script only moves what it
is told to.

## Before any of this serves traffic

Expand Down
23 changes: 23 additions & 0 deletions deploy/nginx/dev.conf
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,29 @@ server {
return 503;
}

# reactome.org and www.reactome.org, if anything points them here.
#
# Production serves these names. This box answers for them only because the
# retired Apache vhost lists them as aliases, and it presents the reactome.org
# certificate when it does. Without this block they would fall to the catch-all
# below and be shown *beta's* certificate -- a name mismatch, so a browser
# security warning where Apache gives a clean 503. That is a worse retirement
# than the one being replaced.
#
# The certificate must therefore keep existing and keep renewing. It renewed via
# the apache authenticator until 2026-09-16; moving it to dns-cloudflare is part
# of the cutover, not optional, because after the cutover there is no Apache for
# it to authenticate through.
server {
listen 80;
listen 443 ssl;
server_name reactome.org www.reactome.org;
ssl_certificate /etc/letsencrypt/live/reactome.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/reactome.org/privkey.pem;
include /etc/nginx/common/tls.conf;
return 503;
}

# Anything else pointed at this box.
#
# A name we do not serve cannot be answered without a certificate mismatch
Expand Down