chemistry-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Turchin (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (CMIS-1007) Server name indication support for cmis-workbench
Date Fri, 13 Jan 2017 18:22:26 GMT

    [ https://issues.apache.org/jira/browse/CMIS-1007?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15822099#comment-15822099
] 

Chris Turchin commented on CMIS-1007:
-------------------------------------

Hi [~fmui], it is the 1.0 version (AFAICT the most current). 

I tried with OkHttp with this host (BTW the cert for testhost.test-domain.de is different
than test-domain.de -- hosts and domains obfuscated) and now get:
{code}
 19:10:35 ERROR hemistry.opencmis.workbench.ClientHelper: CmisConnectionException: Cannot
access "https://testhost.test-domain.de/mc/cmis/atom": Hostname testhost.test-domain.de not
verified:
    certificate: sha256/9dFizKzH7KVbIXi+G9rRyH1gTjQNtWZM6LGOvprHdps=
    DN: CN=test-domain.de
    subjectAltNames: [test-domain.de]
org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Cannot access "https://testhost.test-domain.de/mc/cmis/atom":
Hostname testhost.test-domain.de not verified:
    certificate: sha256/9dFizKzH7KVbIXi+G9rRyH1gTjQNtWZM6LGOvprHdps=
    DN: CN=test-domain.de
    subjectAltNames: [test-domain.de]
	at org.apache.chemistry.opencmis.client.bindings.spi.http.OkHttpHttpInvoker.invoke(OkHttpHttpInvoker.java:252)
	at org.apache.chemistry.opencmis.client.bindings.spi.http.OkHttpHttpInvoker.invokeGET(OkHttpHttpInvoker.java:64)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:697)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:873)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:66)
	at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:92)
	at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:120)
	at org.apache.chemistry.opencmis.workbench.model.ClientSession.connect(ClientSession.java:243)
	at org.apache.chemistry.opencmis.workbench.model.ClientSession.<init>(ClientSession.java:124)
	at org.apache.chemistry.opencmis.workbench.LoginDialog.createClientSession(LoginDialog.java:302)
	at org.apache.chemistry.opencmis.workbench.LoginDialog$1.actionPerformed(LoginDialog.java:123)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.WaitDispatchSupport$2.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(Unknown Source)> 19:10:35 ERROR hemistry.opencmis.workbench.ClientHelper:
Error code: 0
> 19:11:04 ERROR hemistry.opencmis.workbench.ClientHelper: CmisConnectionException: Cannot
access "https://testhost.test-domain.de/mc/cmis/atom": Hostname testhost.test-domain.de not
verified:
    certificate: sha256/9dFizKzH7KVbIXi+G9rRyH1gTjQNtWZM6LGOvprHdps=
    DN: CN=test-domain.de
    subjectAltNames: [test-domain.de]
org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Cannot access "https://testhost.test-domain.de/mc/cmis/atom":
Hostname testhost.test-domain.de not verified:
    certificate: sha256/9dFizKzH7KVbIXi+G9rRyH1gTjQNtWZM6LGOvprHdps=
    DN: CN=test-domain.de
    subjectAltNames: [test-domain.de]
	at org.apache.chemistry.opencmis.client.bindings.spi.http.OkHttpHttpInvoker.invoke(OkHttpHttpInvoker.java:252)
	at org.apache.chemistry.opencmis.client.bindings.spi.http.OkHttpHttpInvoker.invokeGET(OkHttpHttpInvoker.java:64)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:697)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:873)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:66)
	at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:92)
	at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:120)
	at org.apache.chemistry.opencmis.workbench.model.ClientSession.connect(ClientSession.java:243)
	at org.apache.chemistry.opencmis.workbench.model.ClientSession.<init>(ClientSession.java:124)
	at org.apache.chemistry.opencmis.workbench.LoginDialog.createClientSession(LoginDialog.java:302)
	at org.apache.chemistry.opencmis.workbench.LoginDialog$1.actionPerformed(LoginDialog.java:123)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.WaitDispatchSupport$2.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(Unknown Source)> 19:11:04 ERROR hemistry.opencmis.workbench.ClientHelper:
Error code: 0
{code}
I have also tried using the same configuration with a different site, where the letsencrypt
certificate is being provided directly by wildfly-10.1 (no proxy) using the  http2 protocol
I get another error (hostnames/ports are all valid):
{code}
> 19:12:28 ERROR hemistry.opencmis.workbench.ClientHelper: CmisConnectionException: Cannot
access "https://mediacockpit-cloud.de:8443/mc/cmis/atom": sun.security.validator.ValidatorException:
PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable
to find valid certification path to requested target
org.apache.chemistry.opencmis.commons.exceptions.CmisConnectionException: Cannot access "https://mediacockpit-cloud.de:8443/mc/cmis/atom":
sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
	at org.apache.chemistry.opencmis.client.bindings.spi.http.OkHttpHttpInvoker.invoke(OkHttpHttpInvoker.java:252)
	at org.apache.chemistry.opencmis.client.bindings.spi.http.OkHttpHttpInvoker.invokeGET(OkHttpHttpInvoker.java:64)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:697)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:873)
	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:66)
	at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:92)
	at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:120)
	at org.apache.chemistry.opencmis.workbench.model.ClientSession.connect(ClientSession.java:243)
	at org.apache.chemistry.opencmis.workbench.model.ClientSession.<init>(ClientSession.java:124)
	at org.apache.chemistry.opencmis.workbench.LoginDialog.createClientSession(LoginDialog.java:302)
	at org.apache.chemistry.opencmis.workbench.LoginDialog$1.actionPerformed(LoginDialog.java:123)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
	at java.awt.Component.processMouseEvent(Unknown Source)
	at javax.swing.JComponent.processMouseEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.WaitDispatchSupport$2.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.awt.WaitDispatchSupport$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.WaitDispatchSupport.enter(Unknown Source)> 19:12:28 ERROR hemistry.opencmis.workbench.ClientHelper:
Error code: 0
{code}

I tried using {{cmis.workbench.acceptSelfSignedCertificates=true}} but seems to make no difference.
If you would like a test login on the site, pls. contact me directly, I'd rather not post
it in a  JIRA comment.  Chrome and FF both think the cert and the configuration are OK.

> Server name indication support for cmis-workbench
> -------------------------------------------------
>
>                 Key: CMIS-1007
>                 URL: https://issues.apache.org/jira/browse/CMIS-1007
>             Project: Chemistry
>          Issue Type: Improvement
>          Components: opencmis-workbench
>    Affects Versions: OpenCMIS 1.0.0
>         Environment: Windows 8.1
>            Reporter: Chris Turchin
>              Labels: features, security
>
> I have recently started using letsencrypt as a certificate authority for my development
servers. 
> Unfortunately, I get the following error when trying to login to my cmis server using
the latest version of cmis-workbench:
> {code}
> > 18:17:48 ERROR hemistry.opencmis.workbench.ClientHelper: CmisPermissionDeniedException:
Forbidden
> org.apache.chemistry.opencmis.commons.exceptions.CmisPermissionDeniedException: Forbidden
> 	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.convertStatusCode(AbstractAtomPubService.java:497)
> 	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.read(AbstractAtomPubService.java:701)
> 	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.AbstractAtomPubService.getRepositoriesInternal(AbstractAtomPubService.java:873)
> 	at org.apache.chemistry.opencmis.client.bindings.spi.atompub.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:66)
> 	at org.apache.chemistry.opencmis.client.bindings.impl.RepositoryServiceImpl.getRepositoryInfos(RepositoryServiceImpl.java:92)
> 	at org.apache.chemistry.opencmis.client.runtime.SessionFactoryImpl.getRepositories(SessionFactoryImpl.java:120)
> 	at org.apache.chemistry.opencmis.workbench.model.ClientSession.connect(ClientSession.java:243)
> 	at org.apache.chemistry.opencmis.workbench.model.ClientSession.<init>(ClientSession.java:124)
> 	at org.apache.chemistry.opencmis.workbench.LoginDialog.createClientSession(LoginDialog.java:302)
> 	at org.apache.chemistry.opencmis.workbench.LoginDialog$1.actionPerformed(LoginDialog.java:123)
> 	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
> 	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
> 	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
> 	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
> 	at javax.swing.AbstractButton.doClick(Unknown Source)
> 	at javax.swing.plaf.basic.BasicRootPaneUI$Actions.actionPerformed(Unknown Source)
> 	at javax.swing.SwingUtilities.notifyAction(Unknown Source)
> 	at javax.swing.JComponent.processKeyBinding(Unknown Source)
> 	at javax.swing.KeyboardManager.fireBinding(Unknown Source)
> 	at javax.swing.KeyboardManager.fireKeyboardAction(Unknown Source)
> 	at javax.swing.JComponent.processKeyBindingsForAllComponents(Unknown Source)
> 	at javax.swing.JComponent.processKeyBindings(Unknown Source)
> 	at javax.swing.JComponent.processKeyEvent(Unknown Source)
> 	at java.awt.Component.processEvent(Unknown Source)
> 	at java.awt.Container.processEvent(Unknown Source)
> 	at java.awt.Component.dispatchEventImpl(Unknown Source)
> 	at java.awt.Container.dispatchEventImpl(Unknown Source)
> 	at java.awt.Component.dispatchEvent(Unknown Source)
> 	at java.awt.KeyboardFocusManager.redispatchEvent(Unknown Source)
> 	at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(Unknown Source)
> 	at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(Unknown Source)
> 	at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(Unknown Source)
> 	at java.awt.DefaultKeyboardFocusManager.dispatchEvent(Unknown Source)
> 	at java.awt.Component.dispatchEventImpl(Unknown Source)
> 	at java.awt.Container.dispatchEventImpl(Unknown Source)
> 	at java.awt.Window.dispatchEventImpl(Unknown Source)
> 	at java.awt.Component.dispatchEvent(Unknown Source)
> 	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
> 	at java.awt.EventQueue.access$500(Unknown Source)
> 	at java.awt.EventQueue$3.run(Unknown Source)
> 	at java.awt.EventQueue$3.run(Unknown Source)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
> 	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
> 	at java.awt.EventQueue$4.run(Unknown Source)
> 	at java.awt.EventQueue$4.run(Unknown Source)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source)
> 	at java.awt.EventQueue.dispatchEvent(Unknown Source)> 18:17:48 ERROR hemistry.opencmis.workbench.ClientHelper:
Error code: 0
> > 18:17:48 ERROR hemistry.opencmis.workbench.ClientHelper: Error content: <!DOCTYPE
HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
> <html><head>
> <title>403 Forbidden</title>
> </head><body>
> <h1>Forbidden</h1>
> <p>You don't have permission to access /mc/cmis/atom
> on this server.<br />
> Reason: The client software did not provide a hostname using Server Name Indication (SNI),
which is required to access this server.<br />
> </p>
> </body></html>
> {code}
> The certificate is on the reverse proxy, running  Apache/2.4.18 (Ubuntu) and looks basically
like this:
> {code}
> <VirtualHost somehost.somedomain:443>
> ServerName somehost.somedomain
> SSLEngine On
> SSLCertificateFile             /var/letsencrypt/somehost.somedomain/signed.crt
> SSLCertificateKeyFile          /var/letsencrypt/somehost.somedomain/domain.key
> SSLCACertificateFile           /var/letsencrypt/somehost.somedomain/intermediate.pem
> SSLProtocol +TLSv1.2 +TLSv1.1 +TLSv1
> SSLOpenSSLConfCmd DHParameters "/usr/local/apache2/1024dhparams.pem"
> SSLProxyEngine on
> ProxyPass        / http://localhost:8379/ timeout=600
> ProxyPassReverse / http://localhost:8379/ timeout=600
> ProxyPreserveHost On
> Header set Access-Control-Allow-Origin "*"
> Header set Access-Control-Allow-Credentials "true"
> Header edit Location ^http(\:\/\/.*)$ https$1
> </VirtualHost>
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message