Any update on getting RTMPS working with desktop share?

> On May 27, 2016, at 5:04 AM, Maxim Solodovnik <solomax...@gmail.com> wrote:
> 
> Thanks for sharing this Jason,
> 
> I'll update instructions with 3.1.2 release, currently trying to fix RTMPS 
> screen-sharing
> 
> On Fri, May 27, 2016 at 3:42 PM, Jason Romo <ja...@securityarsenal.com 
> <mailto:ja...@securityarsenal.com>> wrote:
> Ok SSL with RTMPS works, but Screen Share is broken.  They are working on it 
> , 3.1.2 is waiting for a resoution.  Thanks to Maxim for helping resolve the 
> proxyType issue.  That was the one thing all docs missed the other was ports. 
>  I don’t think one document had a working config example for Openmeetings 
> 3.1.1. Even the doc on RTMPS at the official website doesn’t work. This 
> works!  So enjoy stress free install using SSL.
> 
> To get SSL working with RTMPS you need to do the following:
> 
> If you want to use LetsEncrypt Free SSL do this use the following or skip and 
> add your own valid cert from any location to the keystone.  I add the 
> LetsEncrypt because I couldn’t find a single source that had this correct 
> either.  It took a bit to resolve.
> 
> Install LetsEncrypt plenty of places to show you how to install.  Then do 
> cert-only install.  You need to convert the cert to work with keystone.
> 
> cd /etc/letsencrypt/live/yourdomain
> 
> # Java cacerts you can add the x3-cross-sign.pem to it like this. You have to 
> download the x3-cross-sign.pem from letsencrypt website. the default Java 
> password is: changeit
> keytool -importcert -file /etc/letsencrypt/live/yourdomain/x3-cross-sign.pem 
> -keystore cacerts
> 
> # Make new keystore
> #keytool -keysize 2048 -genkey -alias key -keyalg RSA -keystore keystore.jks
> 
> # Make sure you append the x3-cross-sign.pem to the chain.pem or it will not 
> work.
> openssl pkcs12 -export -in cert.pem -inkey privkey.pem -out cert_and_key.p12 
> -name red5 -CAfile chain.pem -caname root
> 
> # Import keys
> keytool -importkeystore -deststorepass password -destkeypass password 
> -destkeystore keystore.jks -srckeystore cert_and_key.p12 -srcstoretype PKCS12 
> -srcstorepass d4h3j9nq1 -alias red5
> 
> cp keystore.jks /opt/yourinstall/conf/keystore.jks
> cp keystore.jks /opt/yourinstall/conf/keystore.screen
> cp keystore.jks /opt/yourinstall/conf/truststore.jks
> 
> 
> 
> vi conf/red5.properties
> https.port=443
> rtmps.port=443
> rtmps.keystorepass=yourpass
> rtmps.keystorefile=conf/keystore.jks
> rtmps.truststorepass=yourpass
> rtmps.truststorefile=conf/truststore.jks
> 
> Make sure you set proxyType to none or it will not work.
> vi webapps/openmeetings/public/config.xml
> <rtmpport>1935</rtmpport>
> <rtmpsslport>443</rtmpsslport>
> <useSSL>yes</useSSL>
> <protocol>https</protocol>
> # NOTE: don’t use best like other docs say.  It doesn’t work!!
> <proxyType>none</proxyType>
> 
> 
> Now enable SSL in the jee-container.xml.  I copy the file appending .ssl and 
> .html to allow quick changes.
> vi conf/jee-container.xml
> 
>  <!-- Tomcat without SSL enabled
>     <bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" 
> depends-on="context.loader" init-method="start" 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>     
>             </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>
>             </list>
>         </property>
>         
>     </bean>
> -->
>     <!-- Tomcat with SSL enabled -->
>     <bean id="tomcat.server" class="org.red5.server.tomcat.TomcatLoader" 
> depends-on="context.loader" init-method="start" 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="keystoreType" value="JKS" />
>                             <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="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>
>         
>     </bean>
> 
> 
> You can now start up red5 from init if you followed the install instructions. 
>  You should be able to connect to https://yourdomain.com 
> <https://yourdomain.com/>.  If it complains the cert is not valid then you 
> missed something in the keystone process.  This is the script I use to build 
> my keystone from a cron job just before it expires automatically so it should 
> work.
> 
> Good luck,
> Jason
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> WBR
> Maxim aka solomax

Reply via email to