Interresting side fact : when i display the /katello/api endpoint, some enpoints appear 4 times (those that are not working for me) :
curl -vv https://puppet.public-loadbalancer.net/katello/api
* TCP_NODELAY set
* Expire in 149996 ms for 3 (transfer 0x5576337d45c0)
* Expire in 200 ms for 4 (transfer 0x5576337d45c0)
* Connected to puppet.public-loadbalancer.net (50.112.67.57) port 443 (#0)
* ALPN, offering h2
* ALPN, offering http/1.1
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs
} [5 bytes data]
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
} [512 bytes data]
* TLSv1.3 (IN), TLS handshake, Server hello (2):
{ [98 bytes data]
* TLSv1.2 (IN), TLS handshake, Certificate (11):
{ [4838 bytes data]
* TLSv1.2 (IN), TLS handshake, Server key exchange (12):
{ [333 bytes data]
* TLSv1.2 (IN), TLS handshake, Server finished (14):
{ [4 bytes data]
* TLSv1.2 (OUT), TLS handshake, Client key exchange (16):
} [70 bytes data]
* TLSv1.2 (OUT), TLS change cipher, Change cipher spec (1):
} [1 bytes data]
* TLSv1.2 (OUT), TLS handshake, Finished (20):
} [16 bytes data]
* TLSv1.2 (IN), TLS handshake, Finished (20):
{ [16 bytes data]
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use h2
* Server certificate:
* subject: CN=*.public-loadbalancer.net
* start date: Oct 14 00:00:00 2019 GMT
* expire date: Nov 14 12:00:00 2020 GMT
* subjectAltName: host "puppet.public-loadbalancer.net" matched cert's "*.public-loadbalancer.net"
* issuer: C=US; O=Amazon; OU=Server CA 1B; CN=Amazon
* SSL certificate verify ok.
* Using HTTP2, server supports multi-use
* Connection state changed (HTTP/2 confirmed)
* Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0
} [5 bytes data]
* Using Stream ID: 1 (easy handle 0x5576337d45c0)
} [5 bytes data]
> GET /katello/api HTTP/2
> Host: puppet.public-loadbalancer.net
> User-Agent: curl/7.64.0
> Accept: */*
>
{ [5 bytes data]
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
} [5 bytes data]
< HTTP/2 200
< date: Tue, 15 Oct 2019 14:25:16 GMT
< content-type: application/json; charset=utf-8
< server: Apache
< foreman_version: 1.23.0
< foreman_api_version: 2
< foreman_current_organization: ; ANY
< foreman_current_location: ; ANY
< cache-control: max-age=0, private, must-revalidate
< x-request-id: 9eeb8ea2-fd41-462c-9fde-124b70e3c869
< x-runtime: 0.024219
< vary: Origin,Accept-Encoding
< strict-transport-security: max-age=631139040; includeSubdomains
< x-frame-options: sameorigin
< x-content-type-options: nosniff
< x-xss-protection: 1; mode=block
< x-download-options: noopen
< x-permitted-cross-domain-policies: none
< content-security-policy: default-src 'self'; child-src 'self'; connect-src 'self' ws: wss:; img-src 'self' data: *.gravatar.com; script-src 'unsafe-eval' 'unsafe-inline' 'self'; style-src 'unsafe-inline' 'self'
< x-powered-by: Phusion Passenger 4.0.53
< set-cookie: _session_id=0cc347b34f7ad4da9aa3dee329b8aa56; path=/; secure; HttpOnly; SameSite=Lax
< etag: W/"664bb5e71fe763682396198fa4a26885"
< status: 200 OK
<
{ [4466 bytes data]
100 4466 0 4466 0 0 6967 0 --:--:-- --:--:-- --:--:-- 6967
* Connection #0 to host puppet.public-loadbalancer.net left intact
[
{
"href": "/katello/api/capsules/",
"rel": "capsules"
},
{
"href": "/katello/api/activation_keys/",
"rel": "activation_keys"
},
{
"href": "/katello/api/activation_keys/",
"rel": "activation_keys"
},
{
"href": "/katello/api/activation_keys/",
"rel": "activation_keys"
},
{
"href": "/katello/api/activation_keys/",
"rel": "activation_keys"
},
{
"href": "/katello/api/content_credentials/",
"rel": "content_credentials"
},
{
"href": "/katello/api/content_credentials/",
"rel": "content_credentials"
},
{
"href": "/katello/api/content_credentials/",
"rel": "content_credentials"
},
{
"href": "/katello/api/content_credentials/",
"rel": "content_credentials"
},
{
"href": "/katello/api/content_views/",
"rel": "content_views"
},
{
"href": "/katello/api/content_views/",
"rel": "content_views"
},
{
"href": "/katello/api/content_views/",
"rel": "content_views"
},
{
"href": "/katello/api/content_views/",
"rel": "content_views"
},
{
"href": "/katello/api/content_view_filters/",
"rel": "content_view_filters"
},
{
"href": "/katello/api/content_view_filters/",
"rel": "content_view_filters"
},
{
"href": "/katello/api/content_view_filters/",
"rel": "content_view_filters"
},
{
"href": "/katello/api/content_view_filters/",
"rel": "content_view_filters"
},
{
"href": "/katello/api/content_view_versions/",
"rel": "content_view_versions"
},
{
"href": "/katello/api/content_view_versions/",
"rel": "content_view_versions"
},
{
"href": "/katello/api/content_view_versions/",
"rel": "content_view_versions"
},
{
"href": "/katello/api/content_view_versions/",
"rel": "content_view_versions"
},
{
"href": "/katello/api/ansible_collections/",
"rel": "ansible_collections"
},
{
"href": "/katello/api/ostree_branches/",
"rel": "ostree_branches"
},
{
"href": "/katello/api/debs/",
"rel": "debs"
},
{
"href": "/katello/api/docker_manifests/",
"rel": "docker_manifests"
},
{
"href": "/katello/api/docker_manifest_lists/",
"rel": "docker_manifest_lists"
},
{
"href": "/katello/api/docker_tags/",
"rel": "docker_tags"
},
{
"href": "/katello/api/environments/",
"rel": "environments"
},
{
"href": "/katello/api/environments/",
"rel": "environments"
},
{
"href": "/katello/api/environments/",
"rel": "environments"
},
{
"href": "/katello/api/environments/",
"rel": "environments"
},
{
"href": "/katello/api/errata/",
"rel": "errata"
},
{
"href": "/katello/api/gpg_keys/",
"rel": "gpg_keys"
},
{
"href": "/katello/api/gpg_keys/",
"rel": "gpg_keys"
},
{
"href": "/katello/api/gpg_keys/",
"rel": "gpg_keys"
},
{
"href": "/katello/api/gpg_keys/",
"rel": "gpg_keys"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/module_streams/",
"rel": "module_streams"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/packages/",
"rel": "packages"
},
{
"href": "/katello/api/package_groups/",
"rel": "package_groups"
},
{
"href": "/katello/api/files/",
"rel": "files"
},
{
"href": "/katello/api/products/",
"rel": "products"
},
{
"href": "/katello/api/products/",
"rel": "products"
},
{
"href": "/katello/api/products/",
"rel": "products"
},
{
"href": "/katello/api/products/",
"rel": "products"
},
{
"href": "/katello/api/puppet_modules/",
"rel": "puppet_modules"
},
{
"href": "/katello/api/repositories/",
"rel": "repositories"
},
{
"href": "/katello/api/repositories/",
"rel": "repositories"
},
{
"href": "/katello/api/repositories/",
"rel": "repositories"
},
{
"href": "/katello/api/repositories/",
"rel": "repositories"
},
{
"href": "/katello/api/repository_sets/",
"rel": "repository_sets"
},
{
"href": "/katello/api/srpms/",
"rel": "srpms"
},
{
"href": "/katello/api/subscriptions/",
"rel": "subscriptions"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/organizations/",
"rel": "organizations"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/host_collections/",
"rel": "host_collections"
},
{
"href": "/katello/api/sync_plans/",
"rel": "sync_plans"
},
{
"href": "/katello/api/sync_plans/",
"rel": "sync_plans"
},
{
"href": "/katello/api/sync_plans/",
"rel": "sync_plans"
},
{
"href": "/katello/api/sync_plans/",
"rel": "sync_plans"
}
]