2011-09-20 3 views
5

Câu hỏi đầu tiên của tôi - không phải là có thể sử dụng https mà không sử dụng Chứng chỉ kỹ thuật số? Câu hỏi thứ hai của tôi - Tôi đang bảo mật vài trang trong ứng dụng web của mình. Vì vậy, hãy thêmĐịnh cấu hình Tomcat để sử dụng SSL

<security-constraint> 
    <web-resource-collection> 
     ...... 
    </web-resource-collection> 
    <auth-constraint> 
     ...... 
    </auth-constraint> 
    <user-data-constraint> 
     <transport-guarantee>CONFIDENTIAL</transport-guarantee> 
    </user-data-constraint> 
</security-constraint> 

Tôi đã thử chạy ứng dụng này và các trang đã bật tính năng ssl. Vì vậy, tôi đã đi trước với việc tạo chứng chỉ. Thêm sau đây trong server.xml?

<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" 
     maxThreads="150" 
     scheme="https" 
     secure="true" 
     keystoreFile="C:\Program Files\apache-tomcat-7.0.11-windows-x86\apache-tomcat-7.0.11\.keystore" 
     keystorePass="johneipe" 
     clientAuth="optional" 
     sslProtocol="TLS" /> 

Tôi vẫn không thể truy cập các trang đó hoặc https://localhost:8443.

+0

Nó không dành cho ứng dụng internet công cộng. Đó là thử nghiệm. – John

+0

Ngoài ra tôi đã tạo khoá 'keytool -genkey -alias tomcat -keyalg RSA -validity 100' và sao chép tệp .keystore vào thư mục được đề cập ở trên. – John

Trả lời

9

Thay đổi giao thức của bạn để protocol="org.apache.coyote.http11.Http11Protocol"

này sẽ giải quyết vấn đề này.

+0

Tại sao? Sự khác biệt giữa việc chỉ định org.apache.coyote.http11.Http11Protocol và http/1.1 là gì? – Kevin

+0

@Kevin, giá trị 'HTTP/1.1' có nghĩa là triển khai SSL sẽ được Tomcat chọn. Nếu APR được kích hoạt thì Tomcat thích thực hiện APR. Nhưng các thuộc tính keystoreFiles, keystorePass được dành riêng cho cấu hình JSSE. Giá trị 'org.apache.coyote.http11.Http11Protocol' có nghĩa là bạn muốn sử dụng triển khai JSSE, phù hợp với cấu hình của bạn. – Hubert

6

Bạn đang sử dụng định dạng kho khóa nào? Tôi tin rằng mặc định trong cấu hình Tomcat là một JKS, nhưng nếu bạn đang sử dụng một PKCS # 12 (.p12 hoặc .pfx mở rộng), bạn sẽ cần phải xác định điều đó.
Lưu ý keystoreType = "PKCS12".

<Connector port="1443" 
      maxThreads="200" 
      enableLookups="false" disableUploadTimeout="true" 
      acceptCount="100" debug="0" scheme="https" secure="true" 
      clientAuth="false" sslProtocol="TLS" SSLEnabled="true" 
      keystoreFile="/opt/companyName/tomcat.keystore" 
      keystoreType="PKCS12" 
      keystorePass="password" 
      ciphers="SSL_RSA_WITH_RC4_128_MD5,SSL_RSA_WITH_RC4_128_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_RSA_WITH_AES_128_CBC_SHA,TLS_DHE_DSS_WITH_AES_128_CBC_SHA,SSL_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_RSA_WITH_AES_256_CBC_SHA,TLS_DHE_DSS_WITH_AES_256_CBC_SHA" 
      URIEncoding="UTF-8" 
     /> 
+0

tôi phải đang sử dụng cài đặt mặc định. Tôi không thay đổi bất kỳ cài đặt nào, vì thực tế tôi không biết ý nghĩa của nó là gì .. – John

+0

Bạn có thấy bất kỳ lỗi nào trong tệp nhật ký cho biết vấn đề có thể là gì không? Nhìn vào thư mục log cho catalina.err. –

+0

'Không có tệp được chỉ định hoặc định dạng tệp không hợp lệ' – John