OpenSSL/3.0.17: error:0A00010B:SSL routines::wrong version number

I’m trying to setup Ghost on my VPS. I’m running into this error: OpenSSL/3.0.17: error:0A00010B:SSL routines::wrong version number.

services:
  ghost: # Port 2368
    image: ghost:${GHOST_VERSION:-6-alpine}
    container_name: ghost
    restart: always
    # This is required to import current config when migrating
    env_file:
      - .env
    environment:
      NODE_ENV: production
      url: https://${DOMAIN:?DOMAIN environment variable is required}
      admin__url: ${ADMIN_DOMAIN:+https://${ADMIN_DOMAIN}}
      database__client: mysql
      database__connection__host: db
      database__connection__user: ${DATABASE_USER:-ghost}
      database__connection__password: ${DATABASE_PASSWORD:?DATABASE_PASSWORD environment variable is required}
      database__connection__database: ghost
    volumes:
      - ${UPLOAD_LOCATION:-./data/ghost}:/var/lib/ghost/content
    depends_on:
      db:
        condition: service_healthy
    networks:
      - ghost_nw
      - nginx_nw

  db:
    image: mysql:8.0.44@sha256:f37951fc3753a6a22d6c7bf6978c5e5fefcf6f31814d98c582524f98eae52b21
    restart: always
    expose:
      - "3306"
    environment:
      MYSQL_ROOT_PASSWORD: ${DATABASE_ROOT_PASSWORD:?DATABASE_ROOT_PASSWORD environment variable is required}
      MYSQL_USER: ${DATABASE_USER:-ghost}
      MYSQL_PASSWORD: ${DATABASE_PASSWORD:?DATABASE_PASSWORD environment variable is required}
      MYSQL_DATABASE: ghost
      MYSQL_MULTIPLE_DATABASES: activitypub
    volumes:
      - ${MYSQL_DATA_LOCATION:-./data/mysql}:/var/lib/mysql
      - /home/beanbeanjuice/projects/ghost/db/init:/docker-entrypoint-initdb.d
    healthcheck:
      test: mysqladmin ping -p$$MYSQL_ROOT_PASSWORD -h 127.0.0.1
      interval: 1s
      start_period: 30s
      start_interval: 10s
      retries: 120
    networks:
      - ghost_nw

networks:
  ghost_nw:
    external: false
  nginx_nw:
    external: true

server {
        listen          80;
        server_name     blog.mywebsite.com;

        location / {
                set             $backend "http://ghost:2368$request_uri";
                proxy_pass      $backend;

                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;

                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
        }
}

Inside of my nginx container, I am running the following, and getting the SSL response.

# curl http://ghost:2368
Moved Permanently. Redirecting to https://ghost:2368/
# curl https://ghost:2368
curl: (35) OpenSSL/3.0.17: error:0A00010B:SSL routines::wrong version number

I’m not sure what I am doing wrong.

Your Nginx configuration is actually set up correctly to use HTTP internally (http://ghost:2368). The curl https:// test is failing because the Ghost container isn’t an SSL server. Just ensure your Nginx has the certificate setup for port 443 and you should be good to test your site externally/