I have a script that converts the stanard config of openmeetings to https. It prompts the user for keystore passwords currently but that too could be automated via expect.
I posted before if anybody wants it but nobody replied, maybe I will stop posting about it. Because of the frequency of this topic I figured it might be helpful though, at least as a starting point. -Dave On Sat, Mar 31, 2018 at 10:14 AM, Maxim Solodovnik <solomax...@gmail.com> wrote: > Thanks Aaron for the answers > I'm little bit busy with personal stuff and my day time job > > @Alan, > to set up HTTPS > you need > 1) create keystore located at `rtmps.keystorefile` with password > `rtmps.keystorepass` (and truststore) > 2) modify jee*.xml to enable Tomcat with SSL (and disable Tomcat without SSL) > > not sure how this 2 step instruction can be further simplified :( > > This topic was discussed million times, this is why I send you the > link to search > Maybe previous QA might help > > I'll try to check if this can be further simplified (not sure how yet) > but my time is very limited right now ..... > > > On Fri, Mar 30, 2018 at 11:40 PM, Aaron Hepp <aaron.h...@gmail.com> wrote: >> Did you use a different password then in the instructions (which was >> password) when creating your .jks files? This was my original mistake as >> well. >> >> If so then you will need to change your red5.properties file and put the >> password in there. >> >> # RTMPS Key and Trust store parameters >> rtmps.keystorepass=password >> rtmps.keystorefile=conf/keystore.jks >> rtmps.truststorepass=password >> rtmps.truststorefile=conf/truststore.jks >> >> >> On 3/30/2018 12:27 PM, Alan Johnson wrote: >> >> I changed it to this: >> >> <!-- Tomcat without SSL enabled >> <bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" >> depends-on="context.loader" lazy-init="true"> >> <property name="webappFolder" value="${red5.root}/webapps" >> /> >> <property name="connectors"> >> <list> >> <bean name="httpConnector" >> class="org.red5.server.tomcat.TomcatConnector"> >> <property name="protocol" >> value="org.apache.coyote.http11.Http11NioProtocol" /> >> <property name="address" >> value="${http.host}:${http.port}" /> >> <property name="redirectPort" >> value="${https.port}" /> >> <property >> name="connectionProperties"> >> <map> >> <entry >> key="maxKeepAliveRequests" value="${http.max_keep_alive_requests}"/> >> <entry >> key="keepAliveTimout" value="-1"/> >> </map> >> </property> >> </bean> >> </list> >> </property> >> <property name="baseHost"> >> <bean class="org.apache.catalina.core.StandardHost"> >> <property name="name" value="${http.host}" >> /> >> </bean> >> </property> >> <property name="valves"> >> <list> >> <bean id="valve.access" >> class="org.apache.catalina.valves.AccessLogValve"> >> <property name="directory" >> value="log" /> >> <property name="prefix" >> value="${http.host}_access." /> >> <property name="suffix" value=".log" >> /> >> <property name="pattern" >> value="common" /> >> <property name="rotatable" >> value="true" /> >> </bean> >> <bean id="valve.error" >> class="org.apache.catalina.valves.ErrorReportValve"> >> <property name="showReport" >> value="false" /> >> <property name="showServerInfo" >> value="false" /> >> </bean> >> </list> >> </property> >> </bean> >> >> Tomcat with SSL enabled --> >> >> >> The server is still not answering on https ports. >> >> >> On 3/30/2018 12:20 PM, Aaron Hepp wrote: >> >> that's because when you put a space between the -- and > then that is not a >> vaild "closure"argument and at the end of your file you have a valid >> "closure" --> So it thinks the entire statement is a "comment" >> >> On 3/30/2018 12:16 PM, merch...@argentwolf.org wrote: >> >> I had added a space and it turned it all yellow in bash. >> >> Sent from my android device. >> >> -----Original Message----- >> From: Aaron Hepp <aaron.h...@gmail.com> >> To: user@openmeetings.apache.org, Alan Johnson <merch...@argentwolf.org>, >> Maxim Solodovnik <solomax...@gmail.com> >> Sent: Fri, 30 Mar 2018 12:12 >> Subject: Re: Let's Encrypt and OM and Ubuntu >> >> Looks like you did not comment out the <!-- Tomcat without SSL enabled >> -- > section. >> >> That has to be commented out to force SSL. >> >> remove the --> from that line and add it right above this line >> >> <!-- Tomcat with SSL enabled --> >> >> That will comment out the entire "non-SSL" portion. >> >> >> On 3/30/2018 12:02 PM, Alan Johnson wrote: >>> I have done both of those steps. >>> >>> I created the keystore via the email chain you sent the link to. That >>> seemed to work with no errors. >>> >>> I had previously enabled/disabled tomcat. >>> >>> I tried an experiment and changed the comment on the file and it >>> seemed to like it better (included below) and seems to have fixed the >>> errors in the log file, but it isn't answering on any of the expected >>> ports (5443/8443/443). >>> >>> >>> From red5.properties: >>> >>> # Socket policy >>> policy.host=0.0.0.0 >>> policy.port=843 >>> >>> # HTTP >>> http.host=0.0.0.0 >>> http.port=5080 >>> https.port=443 >>> http.URIEncoding=UTF-8 >>> http.max_headers_size=8192 >>> http.max_keep_alive_requests=-1 >>> http.max_threads=20 >>> http.acceptor_thread_count=10 >>> http.processor_cache=20 >>> >>> # RTMPS >>> rtmps.host=0.0.0.0 >>> rtmps.port=8443 >>> >>> >>> root@freki:/opt/red5402/log# ufw status >>> Status: active >>> >>> To Action From >>> -- ------ ---- >>> OpenSSH ALLOW Anywhere >>> 5080 ALLOW Anywhere >>> 1935 ALLOW Anywhere >>> 80 ALLOW Anywhere >>> 5443 ALLOW Anywhere >>> 8443 ALLOW Anywhere >>> 443 ALLOW Anywhere >>> OpenSSH (v6) ALLOW Anywhere (v6) >>> 5080 (v6) ALLOW Anywhere (v6) >>> 1935 (v6) ALLOW Anywhere (v6) >>> 80 (v6) ALLOW Anywhere (v6) >>> 5443 (v6) ALLOW Anywhere (v6) >>> 8443 (v6) ALLOW Anywhere (v6) >>> 443 (v6) ALLOW Anywhere (v6) >>> >>> This is what is in the red5.log file, if it helps: >>> >>> root@freki:/opt/red5402/log# cat red5.log >>> 2018-03-30 01:20:35,450 [main] INFO org.red5.server.Launcher - Red5 >>> Server 1.0.10 (https://github.com/Red5) >>> 2018-03-30 01:20:35,570 [main] INFO >>> o.s.c.s.FileSystemXmlApplicationContext - Refreshing >>> >>> org.springframework.context.support.FileSystemXmlApplicationContext@548b7f67: >>> startup date [Fri Mar 30 01:20:35 UTC 2018]; root of context hierarchy >>> 2018-03-30 01:20:35,687 [main] INFO >>> o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions >>> from class path resource [red5.xml] >>> 2018-03-30 01:20:36,074 [main] INFO >>> o.s.b.f.xml.XmlBeanDefinitionReader - Loading XML bean definitions >>> from class path resource [jee-container.xml] >>> 2018-03-30 01:21:36,609 [http-nio-0.0.0.0-5080-exec-4] INFO >>> o.a.coyote.http11.Http11Processor - Error parsing HTTP request header >>> Note: further occurrences of HTTP request parsing errors will be >>> logged at DEBUG level. >>> java.lang.IllegalArgumentException: Invalid character found in method >>> name. HTTP method names must be tokens >>> at >>> >>> org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:410) >>> at >>> org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:291) >>> at >>> >>> org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) >>> at >>> >>> org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:754) >>> at >>> >>> org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1376) >>> at >>> >>> org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) >>> at >>> >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) >>> at >>> >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) >>> at >>> >>> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >>> at java.lang.Thread.run(Thread.java:748) >>> >>> Full Jee-container.xml if it helps: >>> >>> <?xml version="1.0" encoding="UTF-8"?> >>> <!-- >>> Licensed to the Apache Software Foundation (ASF) under one or more >>> contributor license agreements. See the NOTICE file distributed with >>> this work for additional information regarding copyright ownership. >>> The ASF licenses this file to You under the Apache License, Version >>> 2.0 >>> (the "License"); you may not use this file except in compliance with >>> the License. You may obtain a copy of the License at >>> >>> http://www.apache.org/licenses/LICENSE-2.0 >>> >>> Unless required by applicable law or agreed to in writing, software >>> distributed under the License is distributed on an "AS IS" BASIS, >>> WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or >>> implied. >>> See the License for the specific language governing permissions and >>> limitations under the License. >>> --> >>> <beans xmlns="http://www.springframework.org/schema/beans" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xmlns:lang="http://www.springframework.org/schema/lang" >>> xsi:schemaLocation=" >>> http://www.springframework.org/schema/beans >>> http://www.springframework.org/schema/beans/spring-beans.xsd >>> http://www.springframework.org/schema/lang >>> http://www.springframework.org/schema/lang/spring-lang.xsd >>> "> >>> <!-- >>> The tomcat connectors may be blocking or non-blocking. Select >>> between either option via the protocol property. >>> Blocking I/O: >>> <property name="protocol" >>> value="org.apache.coyote.http11.Http11Protocol" /> >>> Non-blocking I/O: >>> <property name="protocol" >>> value="org.apache.coyote.http11.Http11NioProtocol" /> >>> --> >>> <!-- Tomcat without SSL enabled -- > >>> <bean id="tomcat.server" >>> class="org.red5.server.tomcat.TomcatLoader" >>> depends-on="context.loader" lazy-init="true"> >>> <property name="webappFolder" >>> value="${red5.root}/webapps" /> >>> <property name="connectors"> >>> <list> >>> <bean name="httpConnector" >>> class="org.red5.server.tomcat.TomcatConnector"> >>> <property name="protocol" >>> value="org.apache.coyote.http11.Http11NioProtocol" /> >>> <property name="address" >>> value="${http.host}:${http.port}" /> >>> <property name="redirectPort" >>> value="${https.port}" /> >>> <property >>> name="connectionProperties"> >>> <map> >>> <entry >>> key="maxKeepAliveRequests" value="${http.max_keep_alive_requests}"/> >>> <entry >>> key="keepAliveTimout" value="-1"/> >>> </map> >>> </property> >>> </bean> >>> </list> >>> </property> >>> <property name="baseHost"> >>> <bean >>> class="org.apache.catalina.core.StandardHost"> >>> <property name="name" >>> value="${http.host}" /> >>> </bean> >>> </property> >>> <property name="valves"> >>> <list> >>> <bean id="valve.access" >>> class="org.apache.catalina.valves.AccessLogValve"> >>> <property name="directory" >>> value="log" /> >>> <property name="prefix" >>> value="${http.host}_access." /> >>> <property name="suffix" >>> value=".log" /> >>> <property name="pattern" >>> value="common" /> >>> <property name="rotatable" >>> value="true" /> >>> </bean> >>> <bean id="valve.error" >>> class="org.apache.catalina.valves.ErrorReportValve"> >>> <property name="showReport" >>> value="false" /> >>> <property >>> name="showServerInfo" value="false" /> >>> </bean> >>> </list> >>> </property> >>> </bean> >>> >>> <!-- Tomcat with SSL enabled --> >>> >>> <bean id="tomcat.server" >>> class="org.red5.server.tomcat.TomcatLoader" >>> depends-on="context.loader" lazy-init="true"> >>> <property name="webappFolder" >>> value="${red5.root}/webapps" /> >>> <property name="connectors"> >>> <list> >>> <bean name="httpConnector" >>> class="org.red5.server.tomcat.TomcatConnector"> >>> <property name="protocol" >>> value="org.apache.coyote.http11.Http11NioProtocol" /> >>> <property name="address" >>> value="${http.host}:${http.port}" /> >>> <property name="redirectPort" >>> value="${https.port}" /> >>> </bean> >>> <bean name="httpsConnector" >>> class="org.red5.server.tomcat.TomcatConnector"> >>> <property name="secure" >>> value="true" /> >>> <property name="protocol" >>> value="org.apache.coyote.http11.Http11NioProtocol" /> >>> <property name="address" >>> value="${http.host}:${https.port}" /> >>> <property name="redirectPort" >>> value="${http.port}" /> >>> <property >>> name="connectionProperties"> >>> <map> >>> <entry >>> key="port" value="${https.port}" /> >>> <entry >>> key="redirectPort" value="${http.port}" /> >>> <entry >>> key="SSLEnabled" value="true" /> >>> <entry >>> key="sslProtocol" value="TLS" /> >>> <entry >>> key="keystoreFile" value="${rtmps.keystorefile}" /> >>> <entry >>> key="keystorePass" value="${rtmps.keystorepass}" /> >>> <entry >>> key="truststoreFile" value="${rtmps.truststorefile}" /> >>> <entry >>> key="truststorePass" value="${rtmps.truststorepass}" /> >>> <entry >>> key="clientAuth" value="false" /> >>> <entry >>> key="allowUnsafeLegacyRenegotiation" value="true" /> >>> <entry >>> key="maxKeepAliveRequests" value="${http.max_keep_alive_requests}"/> >>> <entry >>> key="keepAliveTimout" value="-1"/> >>> <entry >>> key="useExecutor" value="true"/> >>> <entry >>> key="maxThreads" value="${http.max_threads}"/> >>> <entry >>> key="acceptorThreadCount" value="${http.acceptor_thread_count}"/> >>> <entry >>> key="processorCache" value="${http.processor_cache}"/> >>> </map> >>> </property> >>> </bean> >>> </list> >>> </property> >>> <property name="baseHost"> >>> <bean >>> class="org.apache.catalina.core.StandardHost"> >>> <property name="name" >>> value="${http.host}" /> >>> </bean> >>> </property> >>> <property name="valves"> >>> <list> >>> <bean id="valve.access" >>> class="org.apache.catalina.valves.AccessLogValve"> >>> <property name="directory" >>> value="log" /> >>> <property name="prefix" >>> value="${http.host}_access." /> >>> <property name="suffix" >>> value=".log" /> >>> <property name="pattern" >>> value="common" /> >>> <property name="rotatable" >>> value="true" /> >>> </bean> >>> <bean id="valve.error" >>> class="org.apache.catalina.valves.ErrorReportValve"> >>> <property name="showReport" >>> value="false" /> >>> <property >>> name="showServerInfo" value="false" /> >>> </bean> >>> </list> >>> </property> >>> </bean> >>> --> >>> </beans> >>> >>> >>> On 3/30/2018 2:37 AM, Maxim Solodovnik wrote: >>>> Hello Alan, >>>> >>>> To eneble HTTPS for OM you need to do 2 things: >>>> >>>> 1) create valid keystore/truststore (ensure filename/path is correctly >>>> defined in red5.properties) >>>> 2) Edit red5/conf/jee-container.xml file: >>>> Comment Tomcat without SSL enabled section >>>> UNComment Tomcat with SSL enabled section >>>> >>>> On Fri, Mar 30, 2018 at 5:30 AM, Alan Johnson >>>> <merch...@argentwolf.org> wrote: >>>>> So I tried using the steps in the email, and they successfully >>>>> created the >>>>> keystore. >>>>> >>>>> However the steps to enable HTTPS web interface appear to be >>>>> incorrect/have >>>>> changed. >>>>> >>>>> Edit red5/webapps/openmeetings/public/config.xml and set >>>>> <protocol>https</protocol> >>>>> Edit red5/webapps/openmeetings/public/config.xml and set >>>>> red5httpport to >>>>> https port >>>>> >>>>> These files (Config.xml) are missing from the directory. >>>>> >>>>> root@freki:/opt/red5402/webapps/openmeetings/public# ls -al >>>>> total 968 >>>>> drwxr-xr-x 3 nobody root 4096 Mar 29 22:29 . >>>>> drwxr-xr-x 15 nobody root 4096 Mar 28 21:08 .. >>>>> -rw-rw-r-- 1 nobody root 4597 Feb 1 23:17 chat_message.mp3 >>>>> drwxrwxr-x 2 nobody root 4096 Feb 24 23:00 cliparts >>>>> -rw-rw-r-- 1 nobody root 11294 Feb 1 23:17 favicon.ico >>>>> -rw-rw-r-- 1 nobody root 572587 Feb 24 23:00 main.swf >>>>> -rw-rw-r-- 1 nobody root 384036 Feb 24 23:01 networktest.swf >>>>> >>>>> Please advise. >>>>> >>>>> >>>>> >>>>> On 3/29/2018 2:52 AM, Maxim Solodovnik wrote: >>>>> >>>>> What preventing you from using this script? >>>>> >>>>> On Thu, Mar 29, 2018 at 1:41 PM, Anis Aliev <aliev.a...@gmail.com> >>>>> wrote: >>>>> >>>>> Guys from bigbluebutton aleady developed a script for installing >>>>> with lE >>>>> >>>>> чт, 29 марта 2018 г., 9:32 Maxim Solodovnik <solomax...@gmail.com>: >>>>> >>>>> great :) >>>>> >>>>> ps please CC user@ list :) >>>>> >>>>> >>>>> On Thu, Mar 29, 2018 at 11:18 AM, Alan Johnson >>>>> <merch...@argentwolf.org> >>>>> wrote: >>>>> >>>>> Thank you for pointing it out. I will try the steps listed in the 18 >>>>> Oct >>>>> 2017 email tomorrow. >>>>> >>>>> I might suggest that given the number of other emails asking about >>>>> it to >>>>> update the guide and / or build in certbot functionality to simplify >>>>> the >>>>> configuration. If I had my preference, the installer would offer LE >>>>> https as >>>>> a default option for installation. >>>>> >>>>> >>>>> On 3/29/2018 12:13 AM, Maxim Solodovnik wrote: >>>>> >>>>> This topic was discussed many times: >>>>> >>>>> >>>>> >>>>> https://openmeetings.markmail.org/search/?q=letsencrypt#query:letsencrypt+page:1+mid:ik4qdhdychl364bp+state:results >>>>> >>>>> >>>>> What steps are not work for you? >>>>> >>>>> On Thu, Mar 29, 2018 at 10:14 AM, Anis Aliev <aliev.a...@gmail.com> >>>>> wrote: >>>>> >>>>> This is why I am asking community to arrange tutorial for SSL based on >>>>> LE. >>>>> >>>>> FYI >>>>> >>>>> 2018-03-29 7:22 GMT+05:00 Alan Johnson <merch...@argentwolf.org>: >>>>> >>>>> I saw a recent thread regarding windows 10 and Let's Encrypt. Has >>>>> anyone >>>>> had any success with Ubuntu and LE? >>>>> >>>>> I was using this guide >>>>> >>>>> >>>>> >>>>> (https://openmeetings.apache.org/RTMPSAndHTTPS.html#SSL_for_the_web_interface) >>>>> >>>>> after getting OM up and running, but I had no luck figuring out how >>>>> to >>>>> convert the LE certs to appropriate formats for OM? >>>>> >>>>> Thanks, >>>>> >>>>> Alan >>>>> >>>>> >>>>> -- >>>>> >>>>> IT Manager,e-learning specialist >>>>> Skype:aliev_anis >>>>> www.facebook.com/anis.aliev >>>>> Тел:989010012 >>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> WBR >>>>> Maxim aka solomax >>>>> >>>>> >>>>> >>>> >>>> >>> >> >> > > > > -- > WBR > Maxim aka solomax