# Can't get dovecot working



## sugarat (Dec 10, 2011)

Hi all,

I'm building a very simple mail server but I'm a bit stumped on the Dovecot side of things. All I need is a simple authentication against the system password database, and have no need for any fancy ssl/pam/etc mechanisms. At the moment Dovecot fires up but does not allow me to login to the IMAP server.

Here is my conf:


```
## Dovecot configuration file

# If you're in a hurry, see http://wiki.dovecot.org/QuickConfiguration

# "doveconf -n" command gives a clean output of the changed settings. Use it
# instead of copy&pasting files when posting to the Dovecot mailing list.

# '#' character and everything after it is treated as comments. Extra spaces
# and tabs are ignored. If you want to use either of these explicitly, put the
# value inside quotes, eg.: key = "# char and trailing whitespace  "

# Default values are shown for each setting, it's not required to uncomment
# those. These are exceptions to this though: No sections (e.g. namespace {})
# or plugin settings are added by default, they're listed only as examples.
# Paths are also just examples with the real defaults being based on configure
# options. The paths listed here are for configure --prefix=/usr/local
# --sysconfdir=/usr/local/etc --localstatedir=/var

# Protocols we want to be serving.
protocols = imap pop3

ssl_cert = /etc/ssl/dovecot/cert.pem
ssl_key  = /etc/ssl/dovecot/key.pem

disable_plaintext_auth = no
maildir_copy_with_hardlinks = yes

mail_location = maildir:~/Maildir

# A comma separated list of IPs or hosts where to listen in for connections.
# "*" listens in all IPv4 interfaces, "::" listens in all IPv6 interfaces.
# If you want to specify non-default ports or anything more complex,
# edit conf.d/master.conf.
listen = *, ::

auth_mechanisms = PLAIN login

# Base directory where to store runtime data.
#base_dir = /var/run/dovecot/

# Greeting message for clients.
login_greeting = Dovecot ready.

# Space separated list of trusted network ranges. Connections from these
# IPs are allowed to override their IP addresses and ports (for logging and
# for authentication checks). disable_plaintext_auth is also ignored for
# these networks. Typically you'd specify your IMAP proxy servers here.
#login_trusted_networks =

# Sepace separated list of login access check sockets (e.g. tcpwrap)
#login_access_sockets =

# Show more verbose process titles (in ps). Currently shows user name and
# IP address. Useful for seeing who are actually using the IMAP processes
# (eg. shared mailboxes or if same uid is used for multiple accounts).
#verbose_proctitle = no

# Should all processes be killed when Dovecot master process shuts down.
# Setting this to "no" means that Dovecot can be upgraded without
# forcing existing client connections to close (although that could also be
# a problem if the upgrade is e.g. because of a security fix).
#shutdown_clients = yes

# If non-zero, run mail commands via this many connections to doveadm server,
# instead of running them directly in the same process.
#doveadm_worker_count = 0
# UNIX socket or host:port used for connecting to doveadm server
#doveadm_socket_path = doveadm-server

##
## Dictionary server settings
##

# Dictionary can be used to store key=value lists. This is used by several
# plugins. The dictionary can be accessed either directly or though a
# dictionary server. The following dict block maps dictionary names to URIs
# when the server is used. These can then be referenced using URIs in format
# "proxy::<name>".

dict {
  #quota = mysql:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
  #expire = sqlite:/usr/local/etc/dovecot/dovecot-dict-sql.conf.ext
}

# Most of the actual configuration gets included below. The filenames are
# first sorted by their ASCII value and parsed in that order. The 00-prefixes
# in filenames are intended to make it easier to understand the ordering.
#!include conf.d/*.conf

# A config file can also tried to be included without giving an error if
# it's not found:
#!include_try /usr/local/etc/dovecot/local.conf
```


----------



## DutchDaemon (Dec 10, 2011)

This works for me (in Dovecot 2.x):


```
auth_mechanisms = plain

passdb {
driver = pam
}

userdb {
driver = passwd
}
```


----------



## sugarat (Dec 11, 2011)

Hi.  Thanks for that. It seems to have made some difference. 

Now, when I try to log in, I am getting the following echoing to the console:


```
imap-login: Fatal: Can't load ssl_cert: There is no valid PEM certificate (You probably forgot '<' from ssl_cert=</etc/ssl/dovecot/cert.pem)
```

However, the file /etc/ssl/dovecot/cert.pem does exist, so I'm not sure what is wrong here?

Many thanks


----------



## DutchDaemon (Dec 12, 2011)

The error message is pretty clear ...


```
ssl_cert = [B][color="Red"]<[/color][/B]/etc/ssl/certs/dovecot.pem
ssl_key = [B][color="red"]<[/color][/B]/etc/ssl/private/dovecot.pem
```

That is the proper syntax (disregard the path names, those are for my system).


----------

