diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Gerrit.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Gerrit.java
index 5ad4a49..b400b76 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Gerrit.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/config/section/Gerrit.java
@@ -24,6 +24,7 @@
 import org.eclipse.jgit.lib.Config;
 
 public class Gerrit implements Section {
+  private Config gerritConfig;
 
   @Default
   @MessageHeader("gerrit-name")
@@ -50,10 +51,15 @@
   @Default
   public String listenAs;
 
+  public String getAMQPUserPassword(String userName) {
+    return gerritConfig.getString("AMQP", userName, "password");
+  }
+
   @Inject
   public Gerrit(final @GerritServerConfig Config config) {
     this.canonicalWebUrl = config.getString("gerrit", null, "canonicalWebUrl");
     this.version = Version.getVersion();
+    this.gerritConfig = config;
   }
 
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
index 1f9b7e3..6afec87 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/rabbitmq/session/type/AMQPSession.java
@@ -17,6 +17,7 @@
 import com.googlesource.gerrit.plugins.rabbitmq.config.Properties;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.AMQP;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Exchange;
+import com.googlesource.gerrit.plugins.rabbitmq.config.section.Gerrit;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Message;
 import com.googlesource.gerrit.plugins.rabbitmq.config.section.Monitor;
 import com.googlesource.gerrit.plugins.rabbitmq.session.Session;
@@ -148,7 +149,11 @@
         if (StringUtils.isNotEmpty(amqp.username)) {
           factory.setUsername(amqp.username);
         }
-        if (StringUtils.isNotEmpty(amqp.password)) {
+        Gerrit gerrit = properties.getSection(Gerrit.class);
+        String securePassword = gerrit.getAMQPUserPassword(amqp.username);
+        if (StringUtils.isNotEmpty(securePassword)) {
+          factory.setPassword(securePassword);
+        } else if (StringUtils.isNotEmpty(amqp.password)) {
           factory.setPassword(amqp.password);
         }
         connection = factory.newConnection();
diff --git a/src/main/resources/Documentation/config.md b/src/main/resources/Documentation/config.md
index cda6fb5..f54918f 100644
--- a/src/main/resources/Documentation/config.md
+++ b/src/main/resources/Documentation/config.md
@@ -13,6 +13,18 @@
 If `rabbitmq.config` exists in `$site_path/data/rabbitmq`, it is loaded at first.
 It means that this is default for all config files.
 
+
+Secure.config
+---------------------
+
+If amqp.<username>.password is specified in `$site_path/etc/secure.config`. This
+password is used when trying to connect to amqp with username = <username>.
+
+```
+  [amqp "guest"]
+    password = guest
+```
+
 File format
 ---------------------
 
