Okay, there are still no response from module developers/maintainers, so I will post to here my solution of problem 1 (which may be inappropriate or not working for you).
My aim was to change :10000 Virtualmin urls to classic lists.domain.tld but https (SSL) urls. Unfortunately I was unable to find a way to do it within ‘Virtualmin Mailman Mailing Lists’ module. So I configured Mailman software instead. In my case I don’t care if https://domain.tld itself will work in the same way as https://lists.domain.tld (I have no secure content on my domain besides Mailman UI) - so I just’ve added lists.domain.tld as an alias for the domain.tld. If you need them to be separate please go another way.
- Edit httpd.conf file.
In this section we need to do the following:
-
Remove/comment ugly Virtualmin module redirects
-
Add right redirects for SSL virtual host of the domain
-
Add redirects for non-secure virtual host of the domain
Here is the example of virtual host section of non-secure domain (port 80) which we need to redirect to secure one:
<VirtualHost 101.102.103.104:80>
ServerName domain.tld
…
New redirect to secure domain:
RewriteCond %{HTTPS} off [NC]
RewriteRule ^/mailman(/.*) https://%{HTTP_HOST}/mailman$1 [L,R=permanent]
Old Virtualmin redirects which we now comment:
#RedirectMatch /cgi-bin/mailman/([^/.])(.cgi)?(.) https://domain.tld:10000/virtualmin-mailman/unauthenticated/$1.cgi$3
#RedirectMatch /mailman/([^/.])(.cgi)?(.) https://domain.tld:10000/virtualmin-mailman/unauthenticated/$1.cgi$3
#Alias /pipermail /var/lib/mailman/archives/public
Here is the new redirect strings for Mailman software which seemingly incompatible with the ‘Virtualmin Mailman Mailing Lists’ module:
<VirtualHost 101.102.103.104:443>
ServerName domain.tld
ServerAlias lists.domain.tld # You have to add lists CNAME record in your domain’s DNS to make this work
…
Some configuration for Mailman archive:
<Directory /var/lib/mailman/archives/>
Options FollowSymLinks
AllowOverride None
New redirects for Mailman on the secure domain:
Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/
ScriptAlias /admin /usr/lib/mailman/cgi-bin/admin
ScriptAlias /admindb /usr/lib/mailman/cgi-bin/admindb
ScriptAlias /confirm /usr/lib/mailman/cgi-bin/confirm
ScriptAlias /create /usr/lib/mailman/cgi-bin/create
ScriptAlias /edithtml /usr/lib/mailman/cgi-bin/edithtml
ScriptAlias /listinfo /usr/lib/mailman/cgi-bin/listinfo
ScriptAlias /options /usr/lib/mailman/cgi-bin/options
ScriptAlias /private /usr/lib/mailman/cgi-bin/private
ScriptAlias /rmlist /usr/lib/mailman/cgi-bin/rmlist
ScriptAlias /roster /usr/lib/mailman/cgi-bin/roster
ScriptAlias /subscribe /usr/lib/mailman/cgi-bin/subscribe
ScriptAlias /mailman/ /usr/lib/mailman/cgi-bin/
- Set up new values for Mailman inner variables.
Next we need to edit Mailman config file /etc/mailman/mm_cfg.py:
# Old values should be commented
#DEFAULT_URL_HOST = fqdn
#DEFAULT_EMAIL_HOST = fqdn
New ones are for SSL UI on lists.domain.tld.
DEFAULT_URL_PATTERN = ‘https://%s/’
DEFAULT_URL_HOST = “lists.domain.tld”
DEFAULT_EMAIL_HOST = “domain.tld”
VIRTUAL_HOSTS.clear()
And also put this line into the end of mm_cfg.py for correct archive urls:
PUBLIC_ARCHIVE_URL = ‘https://%(hostname)s/pipermail/%(listname)s’
And then apply the configuration with this command in the secure shell:
/usr/lib/mailman/bin/withlist -l -a -r fix_url
Here are couple of pages which helped me:
http://www.howtoforge.com/how-to-install-and-configure-mailman-with-postfix-on-debian-squeeze
http://wiki.list.org/display/DOC/4.27+Securing+Mailman's+web+GUI+by+using+Secure+HTTP-SSL