Điểm:0

Làm cách nào tôi có thể thiết lập SSL trong Tomcat9?

lá cờ kr

Tôi đã thử cài đặt SSL trên tomcat 9 trên cổng 8443. Tuy nhiên, tôi không biết tomcat có hỗ trợ SSL định dạng pem hay crt hay không.

Tôi đã thực hiện các thay đổi đối với server.xml nhưng khi khởi động tomcat, tôi gặp lỗi dưới đây trong nhật ký catelina.out.

Dưới đây là server.xmaconfiguration của tôi.

 <Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
               maxThreads="150" SSLEnabled="true">
        <SSLHostConfig>
            <Certificate certificateKeyFile="conf/privkey.key"
                         certificateFile="conf/fullchain.crt"
                         type="RSA" />
        </SSLHostConfig>
    </Connector>

Nhật ký lỗi Tomcat

org.apache.coyote.AbstractProtocol.init Khởi tạo giao thức xử lý ["https-openssl-nio-8443"]
17-Tháng 11-2021 14:58:19.826 NGHIÊM TRỌNG [chính] org.apache.catalina.util.LifecycleBase.handleSubClassException Không thể khởi tạo thành phần [Trình kết nối[HTTP/1.1-8443]]
    org.apache.catalina.LifecycleException: Khởi tạo trình xử lý giao thức không thành công
        tại org.apache.catalina.connector.Connector.initInternal(Connector.java:983)
        tại org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
        tại org.apache.catalina.core.StandardService.initInternal(StandardService.java:533)
        tại org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
        tại org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1059)
        tại org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
        tại org.apache.catalina.startup.Catalina.load(Catalina.java:584)
        tại org.apache.catalina.startup.Catalina.load(Catalina.java:607)
        tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
        tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        tại java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        tại java.base/java.lang.reflect.Method.invoke(Method.java:566)
        tại org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:304)
        tại org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:474)
    Gây ra bởi: java.lang.IllegalArgumentException
        tại org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:99)
        tại org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:71)
        tại org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:218)
        tại org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1124)
        tại org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1137)
        tại org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:574)
        tại org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:74)
        tại org.apache.catalina.connector.Connector.initInternal(Connector.java:980)
        ... 13 nữa
    Gây ra bởi: java.lang.NullPulumException
        tại org.apache.tomcat.util.net.jsse.PEMFile.<init>(PEMFile.java:101)
        tại org.apache.tomcat.util.net.jsse.PEMFile.<init>(PEMFile.java:74)
        tại org.apache.tomcat.util.net.SSLUtilBase.getKeyManagers(SSLUtilBase.java:303)
        tại org.apache.tomcat.util.net.openssl.OpenSSLUtil.getKeyManagers(OpenSSLUtil.java:98)
        tại org.apache.tomcat.util.net.SSLUtilBase.createSSLContext(SSLUtilBase.java:247)
        tại org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:
lá cờ ru
Tôi thực sự khuyên bạn nên giữ ứng dụng Tomcat của mình ở bên trong và chỉ hiển thị ứng dụng đó qua proxy ngược (trực tiếp qua Apache2 hoặc qua NGINX) vì Tomcat nổi tiếng là không làm cho SSL dễ dàng như một phần gốc của ứng dụng.
Điểm:2
lá cờ cn

Tomcat nổi tiếng là khó khăn với SSL. Lời khuyên của tôi: đặt một proxy ngược trước nó để xử lý SSL.

Có nhiều lựa chọn về các gói phần mềm có thể đóng vai trò là proxy ngược. Hai trong số những cái phổ biến hơn là Apache và Nginx. Chọn một cái, cài đặt nó trên cùng một máy với máy chủ Tomcat của bạn và định cấu hình nó để chấp nhận các yêu cầu HTTPS trên một cổng bạn chọn và chuyển tiếp chúng dưới dạng HTTP tới cổng HTTP Tomcat của bạn.

Ví dụ, hướng dẫn thiết lập Apache hoặc Nginx làm proxy ngược SSL có sẵn ở nhiều nơi đâyđây.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.