Configure o AJP Connector para ativar o SSL no Eclipse Tomcat

2

Sou novato no lado do servidor e gostaria de saber como configurar o conector AJP no tomcat do eclipse no ambiente linux para ativar o SSL.

Eu quero ativar o SSL no tomcat sem usar keystore. Eu criei key.pem, cert.pem e cert.crt. E não faça o que fazer a seguir. Qualquer corpo pode ajudar? Usou os seguintes comandos:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 999

openssl x509 -outform der -in cert.pem -out cert.crt

Server.xml

<Connector 
          port="8443" maxThreads="200"
          scheme="https" secure="true" SSLEnabled="true"
          SSLCertificateFile="/root/keyTest/cert.pem" 
          SSLCertificateKeyFile="/root/keyTest/key.pem"
          clientAuth="optional" SSLProtocol="TLSv1"/>

Mas tenho um erro

SEVERE: Failed to load keystore type JKS with path /root/.keystore due to /root/.keystore (No such file or directory)
    java.io.FileNotFoundException: /root/.keystore (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:146)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:413)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:319)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:577)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
        at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:398)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)

    May 12, 2015 3:58:56 PM org.apache.coyote.AbstractProtocol init
    SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-bio-8443"]
    java.io.FileNotFoundException: /root/.keystore (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:146)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:413)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:319)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:577)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
        at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:398)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)

    May 12, 2015 3:58:56 PM org.apache.catalina.core.StandardService initInternal
    SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8443]]
    org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8443]]
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
        at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:821)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:638)
        at org.apache.catalina.startup.Catalina.load(Catalina.java:663)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)
    Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
        at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
        ... 12 more
    Caused by: java.io.FileNotFoundException: /root/.keystore (No such file or directory)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:146)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getStore(JSSESocketFactory.java:413)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeystore(JSSESocketFactory.java:319)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:577)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.getKeyManagers(JSSESocketFactory.java:517)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.init(JSSESocketFactory.java:462)
        at org.apache.tomcat.util.net.jsse.JSSESocketFactory.createSocket(JSSESocketFactory.java:209)
        at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:398)
        at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:646)
        at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:434)
        at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119)
        at org.apache.catalina.connector.Connector.initInternal(Connector.java:978)
        ... 13 more
    
por Eva Mariam 12.05.2015 / 18:29

1 resposta

0

conseguiu implementar o mesmo.

Consulte: link

Veja os passos abaixo.

  1. openssl req -x509 -newkey rsa: 2048 -keyout key.pem -out cert.pem -days 999 openssl x509 -outform der -in cert.pem -out seu-cert.crt

copie os 3 arquivos acima para /opt/apache-tomcat-7.0.57/conf /

no server.xml

  1. Você não pode usar um keystore se estiver usando o conector APR. link

Você só precisará usar um keystore (ou equivalente), pois precisará de um certificado para poder usar o HTTPS com um navegador. Você pode usar um arquivo PKCS # 12 gerado pelo OpenSSL como um keystore do tipo PKCS12. Alternativamente, você pode usar o conector APR e usar a chave e o certificado no formato PEM diretamente. link Faça o download da fonte nativa do Tomcat em link Faça o download do link do APR Native Instale o Apr / Native: link

cd tomcat-native-1.1.27-src / jni / nativo ./configure --with-apr = / usr / local / apr --with-java-home = / home / foo / jdk1.7.0_25 --with-ssl = sim faço sudo make install Consulte: link link

A partir de / usr / local / apr / lib /, copie o tcnative-1.dll (ou libtcnative.so para Linux) e coloque-o na pasta bin do tomcat e inclua uma propriedade do sistema na configuração de ativação do tomcat servidor no eclipse.  -Djava.library.path = c: \ dev \ tomcat \ bin

Para encontrar a catalina home $ /opt/apache-tomcat-7.0.57/bin/catalina.sh version Usando CATALINA_BASE: /usr/local/apache-tomcat-7.0.29 Usando CATALINA_HOME: /usr/local/apache-tomcat-7.0.29 Usando CATALINA_TMPDIR: /usr/local/apache-tomcat-7.0.29/temp Usando JRE_HOME: /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home Usando CLASSPATH: /usr/local/apache-tomcat-7.0.29/bin/bootstrap.jar:/usr/local/apache-tomcat-7.0.29/bin/tomcat-juli.jar Versão do servidor: Apache Tomcat / 7.0.29 Servidor construído: 3 de julho de 2012 11:31:52 Número do servidor: 7.0.29.0 Nome do SO: Mac OS X Versão do SO: 10.7.4 Arquitetura: x86_64 Versão da JVM: 1.6.0_33-b03-424-11M3720 Fornecedor de JVM: Apple Inc. Consulte: link

Crie /opt/apache-tomcat-7.0.64/bin/setenv.sh

JRE_HOME = / usr / java / latest CATALINA_PID="$ CATALINA_BASE / tomcat.pid exportar LD_LIBRARY_PATH = '$ LD_LIBRARY_PATH: / usr / local / apr / lib'

Consulte: link link

catalin_pid - O arquivo PID está localizado onde quer que você diga ao script catalina para colocá-lo. CATALINA_PID é uma variável de entrada, não uma saída. Você fornece o caminho / arquivo e o tomcat escreve seu número PID em uma única linha de texto para esse arquivo. Consulte: link

JRE_HOME link

link

Adicione a variável de ambiente à configuração do tomcat link

  1. Ir para localhost: 8080
  2. Acesse o link

  3. Cole no web.xml do projeto     securedapp     /     CONFIDENCIAL Consulte: link Não há necessidade para esta etapa / 7. Da próxima vez depois de remover o tomcat do Eclipse, precisamos congiure o tomcat-native novamente. Servidores - > Clique no seu gato - > Visão geral - > Clique em "Abrir configuração de lançamento" - > Tab 'Enviroment - > Novo ...

LD_LIBRARY_PATH - variável de ambiente / usr / local / apr

Veja: link

A biblioteca compartilhada deve ser encontrada pelo processo tomcat. No Linux, você pode usar a variável de ambiente LD_LIBRARY_PATH para isso.

    
por 25.11.2015 / 11:18