AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 107383
In Process
Jesus
Jesus
Asked: 2010-01-29 14:25:22 +0800 CST2010-01-29 14:25:22 +0800 CST 2010-01-29 14:25:22 +0800 CST

通过 apache mod_proxy 和 ajp 在 jboss 5 中 https root webapp

  • 772

我在我的服务器中安装了 apache 2.2.3 和 jboss 5.1,在 apache 中我在 php+mysql 中有 2 个应用程序,在 jboss 中我在根应用程序 (/) liferay 门户中有。我使用 mod_proxy 来访问 jboss 应用程序:

<VirtualHost server_ip:80>
ServerName intranet.mycompany.com
ProxyPreserveHost On
ProxyPass / balancer://jbosscluster/
ProxyPassReverse / http://server_ip:8080
</VirtualHost>

但现在我必须仅在 intranet.mycompany.com 中启用 https,而且我不知道在 apache、jboss 中配置 ssl 的位置。我尝试在 server.xml 中的 jboss 中使用 keytool 生成自签名证书,但 apache 没有转发到https://server_ip:8443

我会感谢你的帮助。

apache-2.2 jboss https mod-proxy-ajp
  • 2 2 个回答
  • 2483 Views

2 个回答

  • Voted
  1. user15590
    2010-01-29T15:59:18+08:002010-01-29T15:59:18+08:00

    如果一切都在同一台服务器上,您需要做的就是在 Apache 中设置 SSL - 您确保已安装 mod_ssl 并几乎使用默认配置样式使其运行。Apache <=> JBoss 通信将像往常一样在同一台服务器上内部发生并且未加密。

    给定一个安装了 mod_ssl 包的标准 linux(例如 CentOS)盒子:

    # SSL Basics
    LoadModule ssl_module modules/mod_ssl.so
    Listen 443
    NameVirtualHost *:443
    AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl    .crl
    SSLPassPhraseDialog  builtin
    SSLSessionCache         shmcb:/var/cache/mod_ssl/scache(512000)
    SSLSessionCacheTimeout  300
    SSLMutex default
    SSLRandomSeed startup file:/dev/urandom  256
    SSLRandomSeed connect builtin
    SSLCryptoDevice builtin
    
    <VirtualHost _default_:443>
      ...config stuff...
      ServerName intranet.mycompany.com
      ProxyPreserveHost On
      ProxyPass / balancer://jbosscluster/
      ProxyPassReverse / http://127.0.0.1:8080
    
      SSLEngine on
      SSLProtocol all -SSLv2
      SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
      SSLCertificateFile /path/to/server.pem
      SSLCertificateKeyFile /path/to/server.pem
    
      <Files ~ "\.(cgi|shtml|phtml|php3?)$">
        SSLOptions +StdEnvVars
      </Files>
    
      SetEnvIf User-Agent ".*MSIE.*" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
    
      CustomLog logs/ssl_request_log \
        "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    
      ...more config stuff...
    </VirtualHost>
    

    文件 server.pem 包含未加密的服务器密钥和从上游机构返回的服务器证书。

    /usr/bin/openssl genrsa -des3 1024 > server.key.encrypted
    /usr/bin/openssl rsa -in server.key.encrypted -out server.key
    
    /usr/bin/openssl req -new -key server.key -out server.csr
    
    cat server.key > server.pem
    cat server.crt >> server.pem
    

    这就是基本的想法——server.crt 是在你给了他们 server.csr 文件(和钱)之后从 Thawte 等返回给你的文件。

    • 1
  2. Jeremy Bouse
    2010-01-29T16:31:32+08:002010-01-29T16:31:32+08:00

    troyengel 的回答将通过您的 Apache 配置为您提供 HTTPS 访问,但如果我正确理解您的问题,您需要intranet.mycompany.com仅通过 HTTPS 而不是通过 HTTP 访问?

    如果是这种情况,我会将您现有的 VirtualHost 声明修改为以下内容:

    <VirtualHost server_ip:80>
        ServerName intranet.mycompany.com
    
        RewriteEngine On
    
        RewriteCond %{HTTPS} !=on
        RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
    </VirtualHost>
    

    这是 troyengel 的 SSL VirtualHost 配置的补充。然后,这应该将任何内容重定向到http://intranet.mycompany.com -> https://intranet.mycompany.com自动保留请求的 URI。

    • 0

相关问题

  • 在您分发的应用程序中使用 Apache HTTPD 运行 SSL 的最佳方式是什么?

  • 阿帕奇的替代品

  • 如何强制我的网址始终以 www 开头?

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • mod_rewrite 不转发 GET 参数

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve