Opening a public shared document

Some or all of the below information will be requested if it isn’t supplied; for fastest response please provide as much as you can. :heart:

The Basics

  • Nextcloud Server version:
    • Nextcloud 34.0.1
  • Operating system and version:
    • #1 SMP PREEMPT Debian 1:6.18.34-1+rpt1 (2026-06-09)
  • Web server and version:
    • Server version: Apache/2.4.68 (Debian)
  • Reverse proxy and version:
    • nginx version: openresty/1.29.2.5
  • PHP version:
    • PHP 8.5.8 (cli) (built: Jul 14 2026 01:27:42) (NTS)
  • Is this the first time you’ve seen this error? (Yes / No):
    • yes
  • When did this problem seem to first start?
    • recently
  • Installation method (e.g. AlO, NCP, Bare Metal/Archive, etc.)
    • OMV Container
  • Are you using CloudfIare, mod_security, or similar? (Yes / No)
    • No

Summary of the issues you are facing:

Opening a public shared link results in Failed to open the requested file.

Steps to replicate it (hint: details matter!):

  1. Create a public link to a xlsx sheet
  2. Try to open the link in an anonymous browser

Log entries

Nextcloud

{"reqId":"LqnKr9OAdOJh9k8NidMj","level":3,"time":"2026-07-23T12:42:31+00:00","remoteAddr":"83.97.85.45","user":"--","app":"officeonline","method":"GET","url":"/apps/officeonline/public?shareToken=ggCeiRkTb9b3ssb&fileName=%252F&requesttoken=qZGZcOh%2FNL0Kq2IhjiQ6s6HXjFYh%2B%2BPIfh2UfwbTj3A%3D%3A5%2BT9KIo5fflZ2Bp3y3JzgZmg22Z1jpWmR0v8PjOK1wo%3D&fileId=229708&path=%2F","scriptName":"/index.php","message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'ofice.kingma.ch' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ofice.kingma.ch/hosting/discovery","userAgent":"Mozilla/5.0 (X11; Linux x86_64; rv:152.0) Gecko/20100101 Firefox/152.0","version":"34.0.1.2","exception":{"Exception":"GuzzleHttp\\Exception\\RequestException","Message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'ofice.kingma.ch' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ofice.kingma.ch/hosting/discovery","Code":0,"Trace":[{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":207,"function":"createRejection","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","line":159,"function":"finishError","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":[{"__class__":"GuzzleHttp\\Handler\\CurlHandler"},"*** sensitive parameters replaced ***",{"__class__":"GuzzleHttp\\Handler\\CurlFactory"}]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php","line":47,"function":"finish","class":"GuzzleHttp\\Handler\\CurlFactory","type":"::","args":[{"__class__":"GuzzleHttp\\Handler\\CurlHandler"},"*** sensitive parameters replaced ***",{"__class__":"GuzzleHttp\\Handler\\CurlFactory"}]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":142,"function":"__invoke","class":"GuzzleHttp\\Handler\\CurlHandler","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Http/Client/DnsPinMiddleware.php","line":121,"function":"{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php","line":35,"function":"{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():115}:116}","class":"OC\\Http\\Client\\DnsPinMiddleware","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":31,"function":"__invoke","class":"GuzzleHttp\\PrepareBodyMiddleware","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php","line":71,"function":"{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php","line":66,"function":"__invoke","class":"GuzzleHttp\\RedirectMiddleware","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php","line":75,"function":"{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}","class":"GuzzleHttp\\Middleware","type":"::","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php","line":333,"function":"__invoke","class":"GuzzleHttp\\HandlerStack","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php","line":169,"function":"transfer","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php","line":189,"function":"requestAsync","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/Http/Client/Client.php","line":214,"function":"request","class":"GuzzleHttp\\Client","type":"->","args":["*** sensitive parameters replaced ***","*** sensitive parameters replaced ***",{"verify":"/var/www/html/resources/config/ca-bundle.crt","timeout":45,"version":"2.0","curl":{"84":4},"nextcloud":{"allow_local_address":true},"0":"And 2 more entries, set log level to debug to see all entries"}]},{"file":"/var/www/html/custom_apps/officeonline/lib/WOPI/DiscoveryManager.php","line":92,"function":"get","class":"OC\\Http\\Client\\Client","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/custom_apps/officeonline/lib/WOPI/DiscoveryManager.php","line":64,"function":"fetchFromRemote","class":"OCA\\Officeonline\\WOPI\\DiscoveryManager","type":"->","args":[]},{"file":"/var/www/html/custom_apps/officeonline/lib/WOPI/Parser.php","line":146,"function":"get","class":"OCA\\Officeonline\\WOPI\\DiscoveryManager","type":"->","args":[]},{"file":"/var/www/html/custom_apps/officeonline/lib/WOPI/Parser.php","line":204,"function":"getParsed","class":"OCA\\Officeonline\\WOPI\\Parser","type":"->","args":[]},{"file":"/var/www/html/custom_apps/officeonline/lib/WOPI/Parser.php","line":185,"function":"getUrlSrcByExtension","class":"OCA\\Officeonline\\WOPI\\Parser","type":"->","args":["external-https","xlsx","edit"]},{"file":"/var/www/html/custom_apps/officeonline/lib/TokenManager.php","line":195,"function":"getUrlSrcForFile","class":"OCA\\Officeonline\\WOPI\\Parser","type":"->","args":[{"__class__":"OC\\Files\\Node\\File"},true]},{"file":"/var/www/html/custom_apps/officeonline/lib/Controller/DocumentController.php","line":371,"function":"getToken","class":"OCA\\Officeonline\\TokenManager","type":"->","args":["*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":165,"function":"publicPage","class":"OCA\\Officeonline\\Controller\\DocumentController","type":"->","args":["*** sensitive parameters replaced ***","%2F","*** sensitive parameters replaced ***"]},{"file":"/var/www/html/lib/private/AppFramework/Http/Dispatcher.php","line":78,"function":"executeController","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Officeonline\\Controller\\DocumentController"},"publicPage"]},{"file":"/var/www/html/lib/private/AppFramework/App.php","line":137,"function":"dispatch","class":"OC\\AppFramework\\Http\\Dispatcher","type":"->","args":[{"__class__":"OCA\\Officeonline\\Controller\\DocumentController"},"publicPage"]},{"file":"/var/www/html/lib/private/Route/Router.php","line":324,"function":"main","class":"OC\\AppFramework\\App","type":"::","args":["OCA\\Officeonline\\Controller\\DocumentController","publicPage",{"__class__":"OC\\AppFramework\\DependencyInjection\\DIContainer"},{"_route":"officeonline.document.publicpage"}]},{"file":"/var/www/html/lib/base.php","line":1159,"function":"match","class":"OC\\Route\\Router","type":"->","args":["/apps/officeonline/public"]},{"file":"/var/www/html/index.php","line":25,"function":"handleRequest","class":"OC","type":"::","args":[]}],"File":"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php","Line":278,"message":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'ofice.kingma.ch' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ofice.kingma.ch/hosting/discovery","exception":"{\"class\":\"GuzzleHttp\\Exception\\RequestException\",\"message\":\"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'ofice.kingma.ch' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ofice.kingma.ch/hosting/discovery\",\"code\":0,\"file\":\"/var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php:278\",\"trace\":\"#0 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(207): GuzzleHttp\\Handler\\CurlFactory::createRejection(Object(GuzzleHttp\\Handler\\EasyHandle), Array)\\n#1 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlFactory.php(159): GuzzleHttp\\Handler\\CurlFactory::finishError(Object(GuzzleHttp\\Handler\\CurlHandler), Object(GuzzleHttp\\Handler\\EasyHandle), Object(GuzzleHttp\\Handler\\CurlFactory))\\n#2 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Handler/CurlHandler.php(47): GuzzleHttp\\Handler\\CurlFactory::finish(Object(GuzzleHttp\\Handler\\CurlHandler), Object(GuzzleHttp\\Handler\\EasyHandle), Object(GuzzleHttp\\Handler\\CurlFactory))\\n#3 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php(142): GuzzleHttp\\Handler\\CurlHandler->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#4 /var/www/html/lib/private/Http/Client/DnsPinMiddleware.php(121): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::tap():137}:138}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#5 /var/www/html/3rdparty/guzzlehttp/guzzle/src/PrepareBodyMiddleware.php(35): OC\\Http\\Client\\DnsPinMiddleware->{closure:{closure:OC\\Http\\Client\\DnsPinMiddleware::addDnsPinning():115}:116}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#6 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php(31): GuzzleHttp\\PrepareBodyMiddleware->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#7 /var/www/html/3rdparty/guzzlehttp/guzzle/src/RedirectMiddleware.php(71): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::cookies():28}:29}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#8 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Middleware.php(66): GuzzleHttp\\RedirectMiddleware->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#9 /var/www/html/3rdparty/guzzlehttp/guzzle/src/HandlerStack.php(75): GuzzleHttp\\Middleware::{closure:{closure:GuzzleHttp\\Middleware::httpErrors():60}:61}(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#10 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php(333): GuzzleHttp\\HandlerStack->__invoke(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#11 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php(169): GuzzleHttp\\Client->transfer(Object(GuzzleHttp\\Psr7\\Request), Array)\\n#12 /var/www/html/3rdparty/guzzlehttp/guzzle/src/Client.php(189): GuzzleHttp\\Client->requestAsync('get', Object(GuzzleHttp\\Psr7\\Uri), Array)\\n#13 /var/www/html/lib/private/Http/Client/Client.php(214): GuzzleHttp\\Client->request('get', 'https://ofice.k...', Array)\\n#14 /var/www/html/custom_apps/officeonline/lib/WOPI/DiscoveryManager.php(92): OC\\Http\\Client\\Client->get('https://ofice.k...', Array)\\n#15 /var/www/html/custom_apps/officeonline/lib/WOPI/DiscoveryManager.php(64): OCA\\Officeonline\\WOPI\\DiscoveryManager->fetchFromRemote()\\n#16 /var/www/html/custom_apps/officeonline/lib/WOPI/Parser.php(146): OCA\\Officeonline\\WOPI\\DiscoveryManager->get()\\n#17 /var/www/html/custom_apps/officeonline/lib/WOPI/Parser.php(204): OCA\\Officeonline\\WOPI\\Parser->getParsed()\\n#18 /var/www/html/custom_apps/officeonline/lib/WOPI/Parser.php(185): OCA\\Officeonline\\WOPI\\Parser->getUrlSrcByExtension('external-https', 'xlsx', 'edit')\\n#19 /var/www/html/custom_apps/officeonline/lib/TokenManager.php(195): OCA\\Officeonline\\WOPI\\Parser->getUrlSrcForFile(Object(OC\\Files\\Node\\File), true)\\n#20 /var/www/html/custom_apps/officeonline/lib/Controller/DocumentController.php(371): OCA\\Officeonline\\TokenManager->getToken('229708', 'ggCeiRkTb9b3ssb', NULL)\\n#21 /var/www/html/lib/private/AppFramework/Http/Dispatcher.php(165): OCA\\Officeonline\\Controller\\DocumentController->publicPage('ggCeiRkTb9b3ssb', '%2F', '229708')\\n#22 /var/www/html/lib/private/AppFramework/Http/Dispatcher.php(78): OC\\AppFramework\\Http\\Dispatcher->executeController(Object(OCA\\Officeonline\\Controller\\DocumentController), 'publicPage')\\n#23 /var/www/html/lib/private/AppFramework/App.php(137): OC\\AppFramework\\Http\\Dispatcher->dispatch(Object(OCA\\Officeonline\\Controller\\DocumentController), 'publicPage')\\n#24 /var/www/html/lib/private/Route/Router.php(324): OC\\AppFramework\\App::main('OCA\\\\Officeonlin...', 'publicPage', Object(OC\\AppFramework\\DependencyInjection\\DIContainer), Array)\\n#25 /var/www/html/lib/base.php(1159): OC\\Route\\Router->match('/apps/officeonl...')\\n#26 /var/www/html/index.php(25): OC::handleRequest()\\n#27 {main}\"}","CustomMessage":"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'ofice.kingma.ch' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ofice.kingma.ch/hosting/discovery"}}

Web Browser

Apps

Enabled:

  • activity: 7.0.0
  • admin_audit: 1.24.0
  • appstore: 1.0.0
  • bookmarks: 16.2.4
  • brewmemo: 0.7.0
  • bruteforcesettings: 7.0.0
  • calendar: 6.5.1
  • camerarawpreviews: 1.1.2
  • circles: 34.0.0
  • cloud_federation_api: 1.18.0
  • contacts: 8.7.4
  • contactsinteraction: 1.15.0
  • cookbook: 0.11.9
  • dashboard: 7.14.0
  • dav: 1.39.0
  • encryption: 2.22.0
  • eurooffice: 11.0.1
  • federatedfilesharing: 1.24.0
  • files: 2.6.0
  • files_downloadlimit: 5.2.0-dev.0
  • files_external: 1.26.0
  • files_lock: 34.0.0
  • files_pdfviewer: 7.0.0-dev.0
  • files_sharing: 1.26.0
  • files_trashbin: 1.24.0
  • files_versions: 1.27.0
  • firstrunwizard: 7.0.0-dev.0
  • groupfolders: 22.0.3
  • logreader: 7.0.0
  • lookup_server_connector: 1.22.0
  • nextcloud_announcements: 6.0.0
  • notes: 6.0.1
  • notifications: 7.0.0-dev.1
  • oauth2: 1.22.0
  • officeonline: 3.2.1
  • password_policy: 6.0.0-dev.0
  • photos: 7.0.0
  • privacy: 6.0.0-dev.1
  • profile: 1.3.0
  • provisioning_api: 1.24.0
  • recommendations: 7.0.0
  • serverinfo: 6.0.0
  • settings: 1.17.0
  • sharebymail: 1.24.0
  • suspicious_login: 12.0.0-dev.0
  • systemtags: 1.24.0
  • theming: 2.9.0
  • twofactor_backupcodes: 1.23.0
  • twofactor_nextcloud_notification: 8.0.0
  • twofactor_totp: 16.0.0
  • updatenotification: 1.24.0
  • uppush: 2.5.0
  • user_status: 1.14.0
  • viewer: 7.0.0-dev.0
  • webhook_listeners: 1.6.0
  • workflowengine: 2.16.0
    Disabled:
  • app_api: 34.0.0 (installed 32.0.0)
  • comments: 1.24.0 (installed 1.24.0)
  • end_to_end_encryption: 2.2.0 (installed 2.2.0)
  • federation: 1.24.0 (installed 1.24.0)
  • files_reminders: 1.7.0 (installed 1.7.0)
  • fulltextsearch: 33.0.0 (installed 33.0.0)
  • office: 1.0.0 (installed 1.0.0)
  • previewgenerator: 5.14.0 (installed 5.14.0)
  • related_resources: 5.0.0-dev.0 (installed 5.0.0-dev.0)
  • sentry: 8.18.6 (installed 8.18.6)
  • support: 6.0.0 (installed 6.0.0)
  • survey_client: 6.0.0-dev.0 (installed 6.0.0-dev.0)
  • tables: 2.2.0 (installed 2.2.0)
  • text: 8.0.0 (installed 8.0.0)
  • user_ldap: 1.25.0 (installed 1.22.0)
  • weather_status: 1.14.0 (installed 1.14.0)

there is nothing there → https://ofice.kingma.ch maybe a typo in your office config?

that hostname doesn’t exist

"cURL error 60: SSL: no alternative certificate subject name matches target hostname 'ofice.kingma.ch' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://ofice.kingma.ch/hosting/discovery"