# SSL\_connect gab zurück=1 errno=0 peeraddr=162.243.189.2:443 state=error: Zertifikatsüberprüfung fehlgeschlagen (Hostname-Übereinstimmung nicht gefunden)

**URL:** https://meta.discourse.org/t/ssl-connect-returned-1-errno-0-peeraddr-162-243-189-2-443-state-error-certificate-verify-failed-hostname-mismatch/269824
**Category:** Self-hosting
**Tags:** s3
**Created:** [27. Juni 2023 um 21:30 UTC](https://meta.discourse.org/t/ssl-connect-returned-1-errno-0-peeraddr-162-243-189-2-443-state-error-certificate-verify-failed-hostname-mismatch/269824 "2023-06-27T21:30:25Z")
**Posts on this page:** 1
**Showing post:** 17

<div class="post-metadata">

### Author: ![supermathie](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/supermathie/32/507518_2.png) [@supermathie](https://meta.discourse.org/u/supermathie)
#### Post date: [9. November 2023 um 03:59 UTC](https://meta.discourse.org/t/ssl-connect-returned-1-errno-0-peeraddr-162-243-189-2-443-state-error-certificate-verify-failed-hostname-mismatch/269824/17 "2023-11-09T03:59:51Z")

</div>

OK, ich habe ein `binding.pry` am Anfang von `ssl_socket_connect` hinzugefügt und was ich sehe, wenn ich versuche, diese Einstellungen zu verwenden, ist:

```plaintext
→ DISCOURSE_USE_S3=true DISCOURSE_S3_REGION=ap-singapore-1 DISCOURSE_S3_ENDPOINT=https://axhjdarc4cuy.compat.objectstorage.ap-singapore-1.oraclecloud.com DISCOURSE_S3_ACCESS_KEY_ID=foo DISCOURSE_S3_SECRET_ACCESS_KEY=bar DISCOURSE_S3_BUCKET=bucketname bin/rails c
Loading development environment (Rails 7.0.7)
[1] pry(main)> s3 = S3Helper.build_from_config; s3.list

From: /home/michael/.rvm/gems/ruby-3.2.2@discourse/gems/net-protocol-0.2.2/lib/net/protocol.rb:42 Net::Protocol#ssl_socket_connect:

    40: def ssl_socket_connect(s, timeout)
    41: binding.pry
 => 42: if timeout
    43: while true
    44: raise Net::OpenTimeout if timeout <= 0
    45: start = Process.clock_gettime Process::CLOCK_MONOTONIC
    46: # to_io is required because SSLSocket doesn't have wait_readable yet
    47: case s.connect_nonblock(exception: false)
    48: when :wait_readable; s.to_io.wait_readable(timeout)
    49: when :wait_writable; s.to_io.wait_writable(timeout)
    50: else; break
    51: end
    52: timeout -= Process.clock_gettime(Process::CLOCK_MONOTONIC) - start
    53: end
    54: else
    55: s.connect
    56: end
    57: end

[1] pry(#<Net::HTTP>)>> s.hostname
=> "bucketname.axhjdarc4cuy.compat.objectstorage.ap-singapore-1.oraclecloud.com"

```

Der tatsächliche _Hostname_, zu dem verbunden wird, ist also `bucketname.axhjdarc4cuy.compat.objectstorage.ap-singapore-1.oraclecloud.com`, was _nicht_ mit `*.compat.objectstorage.ap-singapore-1.oraclecloud.com` übereinstimmt, sodass der Fehler korrekt ist.

Leider unterstützt [OCI diesen Zugriffsstil nicht](https://docs.oracle.com/en-us/iaas/Content/Object/Tasks/s3compatibleapi.htm):

> Verwenden Sie den pfadbasierten Zugriff in Ihrer Anwendung. Der Zugriff im virtuellen Host-Stil (Zugriff auf einen Bucket als `{bucketnamespace}.compat.objectstorage.{region}.oraclecloud.com` [sic]) wird nicht unterstützt.

Umgekehrt unterstützt Discourse nur den Zugriff im virtuellen Host-Stil (`{bucketname}.{namespace}.compat.objectstorage.{region}.oraclecloud.com.`).

Wir haben die Einstellung, die dies möglicherweise vor einiger Zeit zum Laufen gebracht hätte, [entfernt](https://github.com/discourse/discourse/commit/ad6ad3f67972e74495cb424b95577e497c811b42), da sie nicht gut unterstützt wurde (siehe Commit-Nachricht).

**Dies zum Laufen zu bringen, wird nicht einfach sein und erfordert komplexe Entwicklung und Tests, um diese Unterstützung hinzuzufügen.**

Hier sind Drachen.

(xref: [S3 Path Style Access](https://meta.discourse.org/t/s3-path-style-access/131890?u=supermathie))

---

_[View the full topic](https://meta.discourse.org/t/ssl-connect-returned-1-errno-0-peeraddr-162-243-189-2-443-state-error-certificate-verify-failed-hostname-mismatch/269824)._
