diff --git a/SOURCES/goa-Add-support-for-certificate-prompts.patch b/SOURCES/goa-Add-support-for-certificate-prompts.patch
new file mode 100644
index 0000000..fef2e61
--- /dev/null
+++ b/SOURCES/goa-Add-support-for-certificate-prompts.patch
@@ -0,0 +1,164 @@
+From bbc95d6716ac491489f059c68a6dd258e38aee79 Mon Sep 17 00:00:00 2001
+From: Ondrej Holy <oholy@redhat.com>
+Date: Mon, 25 Nov 2019 16:53:31 +0100
+Subject: [PATCH] goa: Add support for certificate prompts
+
+Since commit f5ee590e, it is not possible to access Nextcloud/ownCloud
+shares with self-signed (or invalid) certificates. This is because
+the mount operation is handled by GOA volume monitor and the prompt
+to accept certificate is not shown. Let's update the volume monitor
+to handle just passwords and show the prompt to the client.
+
+Fixes: https://gitlab.gnome.org/GNOME/gvfs/issues/251
+---
+ monitor/goa/goavolume.c | 98 ++++++++++++++++++++++++++++++++++++++++-
+ 1 file changed, 96 insertions(+), 2 deletions(-)
+
+diff --git a/monitor/goa/goavolume.c b/monitor/goa/goavolume.c
+index c077dd94..5e9097c6 100644
+--- a/monitor/goa/goavolume.c
++++ b/monitor/goa/goavolume.c
+@@ -64,6 +64,7 @@ G_DEFINE_TYPE_EXTENDED (GVfsGoaVolume, g_vfs_goa_volume, G_TYPE_OBJECT, 0,
+ typedef struct
+ {
+   GMountOperation *mount_operation;
++  GMountOperation *mount_operation_orig;
+   gchar *passwd;
+ } MountOp;
+ 
+@@ -72,6 +73,13 @@ mount_op_free (MountOp *data)
+ {
+   g_clear_object (&data->mount_operation);
+   g_free (data->passwd);
++
++  if (data->mount_operation_orig != NULL)
++    {
++      g_signal_handlers_disconnect_by_data (data->mount_operation_orig, data);
++      g_object_unref (data->mount_operation_orig);
++    }
++
+   g_slice_free (MountOp, data);
+ }
+ 
+@@ -97,6 +105,88 @@ account_attention_needed_cb (GObject *_object, GParamSpec *pspec, gpointer user_
+ 
+ /* ---------------------------------------------------------------------------------------------------- */
+ 
++GType g_vfs_goa_mount_operation_get_type (void) G_GNUC_CONST;
++
++typedef struct
++{
++  GMountOperation parent_instance;
++} GVfsGoaMountOperation;
++
++typedef struct
++{
++  GMountOperationClass parent_class;
++} GVfsGoaMountOperationClass;
++
++static GMountOperation *
++g_vfs_goa_mount_operation_new (void)
++{
++  return G_MOUNT_OPERATION (g_object_new (g_vfs_goa_mount_operation_get_type (), NULL));
++}
++
++G_DEFINE_TYPE (GVfsGoaMountOperation, g_vfs_goa_mount_operation, G_TYPE_MOUNT_OPERATION)
++
++static void
++g_vfs_goa_mount_operation_init (GVfsGoaMountOperation *mount_operation)
++{
++}
++
++static void
++g_vfs_goa_mount_operation_ask_question (GMountOperation *op,
++                                        const char *message,
++                                        const char *choices[])
++{
++  /* This is needed to prevent G_MOUNT_OPERATION_UNHANDLED reply in idle. */
++}
++
++static void
++g_vfs_goa_mount_operation_class_init (GVfsGoaMountOperationClass *klass)
++{
++  GMountOperationClass *mount_op_class;
++
++  mount_op_class = G_MOUNT_OPERATION_CLASS (klass);
++  mount_op_class->ask_question  = g_vfs_goa_mount_operation_ask_question;
++}
++
++/* ---------------------------------------------------------------------------------------------------- */
++
++static void
++ask_question_reply_cb (GMountOperation      *op,
++                       GMountOperationResult result,
++                       gpointer              user_data)
++{
++  MountOp *data = g_task_get_task_data (user_data);
++
++  g_mount_operation_set_choice (data->mount_operation,
++                                g_mount_operation_get_choice (op));
++  g_mount_operation_reply (data->mount_operation, result);
++}
++
++static void
++mount_operation_ask_question_cb (GMountOperation *op,
++                                 gchar           *message,
++                                 GStrv            choices,
++                                 gpointer         user_data)
++{
++  MountOp *data = g_task_get_task_data (user_data);
++
++  if (data->mount_operation_orig != NULL)
++    {
++      g_signal_connect (data->mount_operation_orig,
++                        "reply",
++                        G_CALLBACK (ask_question_reply_cb),
++                        user_data);
++      g_signal_emit_by_name (data->mount_operation_orig,
++                             "ask-question",
++                             message,
++                             choices);
++    }
++  else
++    {
++      g_mount_operation_reply (data->mount_operation,
++                               G_MOUNT_OPERATION_UNHANDLED);
++    }
++}
++
+ static void
+ mount_operation_ask_password_cb (GMountOperation   *op,
+                                  gchar             *message,
+@@ -412,7 +502,7 @@ g_vfs_goa_volume_get_uuid (GVolume *_self)
+ static void
+ g_vfs_goa_volume_mount (GVolume             *_self,
+                         GMountMountFlags     flags,
+-                        GMountOperation     *mount_operation,
++                        GMountOperation     *mount_operation_orig,
+                         GCancellable        *cancellable,
+                         GAsyncReadyCallback  callback,
+                         gpointer             user_data)
+@@ -423,6 +513,9 @@ g_vfs_goa_volume_mount (GVolume             *_self,
+   GoaAccount *account;
+ 
+   data = g_slice_new0 (MountOp);
++  if (mount_operation_orig != NULL)
++    data->mount_operation_orig = g_object_ref (mount_operation_orig);
++
+   task = g_task_new (self, cancellable, callback, user_data);
+   g_task_set_source_tag (task, g_vfs_goa_volume_mount);
+   g_task_set_task_data (task, data, (GDestroyNotify) mount_op_free);
+@@ -431,8 +524,9 @@ g_vfs_goa_volume_mount (GVolume             *_self,
+    * monitor because it is set up to emit MountOpAskPassword on
+    * ask-password.
+    */
+-  data->mount_operation = g_mount_operation_new ();
++  data->mount_operation = g_vfs_goa_mount_operation_new ();
+   g_signal_connect (data->mount_operation, "ask-password", G_CALLBACK (mount_operation_ask_password_cb), task);
++  g_signal_connect (data->mount_operation, "ask-question", G_CALLBACK (mount_operation_ask_question_cb), task);
+ 
+   account = goa_object_peek_account (self->object);
+   goa_account_call_ensure_credentials (account, cancellable, ensure_credentials_cb, task);
+-- 
+2.28.0
+
diff --git a/SPECS/gvfs.spec b/SPECS/gvfs.spec
index 415dcd9..d80d0ce 100644
--- a/SPECS/gvfs.spec
+++ b/SPECS/gvfs.spec
@@ -25,7 +25,7 @@
 
 Name: gvfs
 Version: 1.36.2
-Release: 10%{?dist}
+Release: 11%{?dist}
 Summary: Backends for the gio framework in GLib
 
 License: GPLv3 and LGPLv2+ and BSD and MPLv2.0
@@ -63,6 +63,9 @@ Patch9: udisks2-Fix-crashes-caused-by-missing-source-tag.patch
 # https://bugzilla.redhat.com/show_bug.cgi?id=1569868
 Patch10: smb-Improve-enumeration-performance.patch
 
+# https://bugzilla.redhat.com/show_bug.cgi?id=1889411
+Patch11: goa-Add-support-for-certificate-prompts.patch
+
 BuildRequires: pkgconfig
 BuildRequires: pkgconfig(glib-2.0) >= %{glib2_version}
 BuildRequires: pkgconfig(dbus-glib-1)
@@ -441,6 +444,9 @@ killall -USR1 gvfsd >&/dev/null || :
 %{_datadir}/installed-tests
 
 %changelog
+* Tue Nov 03 2020 Ondrej Holy <oholy@redhat.com> - 1.36.2-11
+- Add support for certificates prompts for GOA mounts (rhbz#1889411)
+
 * Wed Aug 05 2020 Ondrej Holy <oholy@redhat.com> - 1.36.2-10
 - Fix libusb(x) requirements (rhbz#1866332)