r - 结合 r-handler 和 tls

标签 r ssl apache2.4 opencpu

是否可以直接通过 TLS 提供 Apache R-mod?无需设置反向代理?

我正在尝试设置一个没有典型反向代理配置的 OpenCPU 实例。它应该只能通过 HTTPS 和 HTTPS 访问。

每当我尝试启用 TLS/SSL 引擎时,Apache 都会忽略它,并且在端口 443 上我会得到一个 header 不匹配,因为 HTTP 通过端口 443 传送。

<IfModule mod_ssl.c>
SSLStaplingCache "shmcb:${APACHE_LOG_DIR}/stapling-cache(150000)"
<IfModule mod_R.c>

    RSourceOnStartup "/usr/lib/opencpu/rapache/onstartup.R"

    <Location /ocpu>
        SSLEngine on
        SSLUseStapling on
        SSLCertificateFile  /etc/ssl/xxx.pem
        SSLCertificateKeyFile /etc/ssl/private/xxx.key
        SSLCertificateChainFile /etc/ssl/certs/chain.pem

        SetHandler r-handler
        RHandler opencpu:::rapachehandler
        SetOutputFilter DEFLATE
        SetInputFilter DEFLATE
    </Location>

    Alias /favicon.ico /usr/lib/opencpu/rapache/favicon.ico
    Alias /robots.txt /usr/lib/opencpu/rapache/robots.txt

    # Increase prefork defaults
    <IfVersion >= 2.4>
        #StartServers 10
        MaxConnectionsPerChild 200
        <Directory /usr/lib/opencpu/rapache>
            Require all granted
        </Directory>
    </IfVersion>

</IfModule>

最佳答案

Location/ocpu 似乎对两个 VirtualHosts 都有效,一个用于 HTTP 和 HTTPS。

因此在 000-default.conf 中将 HTTP 重定向到 HTTPS 并在 default-ssl.conf 中正确设置 TLS 就足够了。

<VirtualHost *:80>
    ServerName xxx
    ServerAdmin xxx

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Redirect / https://xxx/

</VirtualHost>

# cat default-ssl.conf 
<IfModule mod_ssl.c>
    SSLStaplingCache "shmcb:${APACHE_LOG_DIR}/stapling-cache(150000)"
    LogLevel Debug
    <VirtualHost *:443>
        ServerName xxx
        ServerAdmin xxx

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        SSLEngine on
        SSLUseStapling on

        SSLCertificateFile  /etc/ssl/certs/xxx.pem
        SSLCertificateKeyFile /etc/ssl/private/xxx.key
        SSLCertificateChainFile /etc/ssl/certs/xxx.pem

        DocumentRoot /var/www/html

    </VirtualHost>
</IfModule>

无需更改 opencpu.conf 中的任何内容。

关于r - 结合 r-handler 和 tls,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59282331/

相关文章:

r - 如何使用 R 将两个或多个变量转换(计算)为一个?

r - 无法在 R 3.2 版下安装 Quandl?

r - 更改 summary() 的打印变量名称

ssl - Heroku SSL 证书 : change default email address

r - 我可以在数据框的每个元素上使用 gsub() 吗?

http - Go:通过证书使用经过身份验证的客户端验证后续的 http 请求

tomcat - 为 Tomcat 编写自定义 SSL 上下文

php - 如何修复stream_socket_enable_crypto() : SSL operation failed with code 1

websocket - 无法将模块/mod_proxy_wstunnel.so 加载到服务器中

apache - 在 apache 2.4 中结合子文件夹的 ip 和用户身份验证限制