在 CentOS 上为 Shiny 服务器 运行 创建 SSL 证书

Create an SSL certificate for a Shiny server running on CentOS

我不知道如何为在 CentOS 机器上运行的 Shiny 服务器创建 SSL 证书。

我的最终目标是能够使用 HTTPS 访问我的应用程序。

所以而不是 - HTTP://mydomain.com:3838/my-app/
拥有类似的东西 - HTTPS://mydomain.com:3838/my-app/
甚至更好 - HTTPS://mydomain/my-app/

我尽了最大的努力学习了很多教程,但我不是系统管理方面的专家,也没有取得太大的成功。
非常感谢这里的任何帮助!

# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)

# shiny-server --version
Shiny Server v1.5.7.907

谢谢!

我的答案一言以蔽之:letsencrypt。

Letsencrypt 提供了一个可执行文件,它将为您的服务器处理的所有域授予 SSL 证书。为此,它会通过安装一个临时 Web 服务器来验证您的机器,并检查是否可以使用您提供的域名访问它。

官方网站上有更多信息。获得证书后,只需将它们添加到 nginx 或 Apache 或您正在使用的任何网络服务器即可。

更新:

要将 http 调用转发到您闪亮的 Web 服务器,您必须使用 Apache Web 服务器作为代理,这意味着您 yourdomain:80 的每个调用都将被重定向到 locahost:3838。

您必须编辑您的默认配置。在 ubuntu 中,您可以在以下路径中找到它:/etc/apache2/sites-enabled/000-default.conf

然后,在配置文件中:

<VirtualHost *:80>
    # These lines configures SSL
    SSLEngine on
    SSLCertificateFile /path/to/your/ssl.crt
    SSLCertificateKeyFile /path/to/your/ssl.key

    # These lines configure the proxy
    ProxyPreserveHost On
    ProxyPass / http://0.0.0.0:3838/
    ProxyPassReverse / http://0.0.0.0:3838/

    # This sets the domain name to listen for
    ServerName yourdomain.com
</VirtualHost>

然后,重新启动 apache 就可以了。