.net core使用jexus配置https

今天搞了一下怎么从http换成https,写一篇博客记录该过程。关于jexus的安装和使用请看我之前的一篇博客《Jexus部署Asp.Net Core项目》,唯一的不同是,将jexus升级成了5.8.3的专业版。我觉得在这里还是有必要再说一下jexus这个东东。

什么是Jexus?
Jexus是一款Linux平台上的高性能WEB服务器和负载均衡网关,以支持ASP.NET、ASP.NET CORE、PHP为特色,同时具备反向代理、入侵检测等重要功能。可以这样说,Jexus是.NET、.NET CORE跨平台的最优秀的宿主服务器,如果我们认为它是Linux平台的IIS,这并不为过,因为,Jexus不但非常快,而且拥有IIS和其它Web服务器所不具备的高度的安全性,这是政府机构和重要企业对web服务器最必要也是最重要的品质需求。

关于Jexus独立版和通用版

Jexus“独立版”指的是自带.net运行时(mono),不需要在客户服务器安装mono就能正常运行的Jexus版本,该版本只支持 64位Linux操作系统。

Jexus通用版(不推荐)不带 .NET运行时,因此,使用者应该首先在客户机安装mono和libgdiplus。

Jexus操作命令:
操作Jexus需在Jexus的安装目录下操作,切换至目录(如:cd /tmp/jexus)
启动:sudo ./jws start
停止:sudo ./jws stop

重启:sudo ./jws restart

基础知识介绍完后,下面开始进入正题:

1、运行环境

系统信息:CentOS Linux release 7.4.1708(Core)

Jexus版本:Jexus V5.8.3x64 专业版(独立版)

2、安装并部署

安装Jexus并将.net core项目部署到CentOS中,使其能够通过域名正常访问,关于部署请查看上面提到的一篇博客,不做多余赘述。

3、申请SSL证书

我用的是腾讯云的服务器,可以自行进行申请,具体申请步骤可查看官方链接:

https://cloud.tencent.com/document/product/400/6814

另外,如果大家是在腾讯云购买的域名的话,会自动生成一个免费的SSL证书,这个也是可以正常使用的,当申请完证书后,可以发现,申请的证书中包含了Apache 2.x,Nginx证书,IIS证书,Tomcat证书,并不包含Jexus证书,那如果想使用Jexus部署的话,可以直接采用Nginx的证书即可。关于这几种证书的安装,可直接参考腾讯云官方文档:

https://cloud.tencent.com/document/product/400/4143

下载的证书文件如下:

为什么Https会比Http要安全,实际上就是因为多了一层SSL/TLS,SSL(Secure Socket Layer,安全套接字层):1994年为 Netscape 所研发,SSL 协议位于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。而TLS(Transport Layer Security,传输层安全):其前身是 SSL,它最初的几个版本(SSL 1.0、SSL 2.0、SSL 3.0)由网景公司开发,1999年从 3.1 开始被 IETF 标准化并改名,发展至今已经有 TLS 1.0、TLS 1.1、TLS 1.2 三个版本。SSL3.0和TLS1.0由于存在安全漏洞,已经很少被使用到。TLS 1.3 改动会比较大,目前还在草案阶段,目前使用最广泛的是TLS 1.1、TLS 1.2。所以可以看到,在官方的文档中,SSL协议要按如下配置:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

4、配置SSL证书

Jexus有两种配置方式,一种是全服务器的配置,当然这要求你申请的证书是针对你在该服务器上所有域名的全局证书,在Jexus安装目录下修改jws.conf文件,分别修改CertificateFile 和CertificateKeyFile的证书的绝对路径,如图所示:

另一种配置就是比较常规的配置方式,适用于证书只针对某一个域名的情况,分别修改每个站点的配置文件,在Jexus安装目录中siteconf文件夹下,此文件用来放置你所有站点的配置,默认为default配置文件,可自行修改名称,要是有多个站点配置,可直接拷贝该文件。修改以下参数:

http使用的80端口,https使用的是443端口,注意在使用腾讯云的时候,要将你使用的端口在安全组里面添加入站规则,无需多说。注意这几个参数的配置:UseHttps=true,ssl.certificate=crt的绝对路径,ssl.certificatekey=key文件的绝对路径,ssl.protocol=默认的是TLSV1.1,ssl.ciphers配置的套件按照腾讯云的文档配置。

以上为如何配置证书,由于jexus https需要libssl函数库的支持,下一步登记SSL库

5、登记SSL库

首先查看在/lib或/usr/lib等系统文件库下是否有SSL库文件的名字,该文件名应该是“libssl.so.版本号”,使用命令:

find / -name libssl.so.*

若出现以下类似信息:

若没有出现以上信息,则说明未安装OpenSSL,就先请安装OpenSSL ,OpenSSL是一个安全套接字层密码库,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供丰富的应用程序供测试或其他目的使用。关于如何安装OpenSSL,请大家自行查找相关文档。那么如何确定的SSL库文件名,使用命令:

ls -l /usr/lib64/ |grep libssl 

查看信息如下:

由此可以判定,我们所需要的文件为 libssl.so.1.0.2k 。找到该文件后,有两种配置方式,通用版的配置方式是修改配置文件,独立版的配置方式是可以直接进行软链接,下面我们首先查看是否有无链接成功,使用命令:

ls -l /root/jexus/runtime/lib 

如上图所示,则表示没有链接,可使用命令进行软连接,命令如下:

sudo ln -s //usr/lib64/libssl.so.1.0.2k /root/jexus/runtime/lib/libssl.so

执行完成后,再运行查看链接命令如下图所示,表示已存在链接:

这就表明libssl已经链接到 /root/jexus/runtime/lib文件夹下了,此时我们启动我们的项目 ./jws start ,使用https访问就可以正常访问了。

另一种方式就是修改配置文件,文件路径在/jexus/runtime/etc/mono下的config文件,打开该文件在configuration节点下添加以下节点配置:

<dllmap dll="libssl" target="/usr/lib64/libssl.so.1.0.2k" os="!windows" />

dll必须为libssl,target必须为你系统种用到的文件路径。再启动我们的网站也就可以正常访问了。

关于Jexus的其他的详细配置,可自行去官方文档进行查看。https://www.linuxdot.net/bbsfile-3084

原文地址:https://www.cnblogs.com/Allen0910/p/8540622.html

时间: 2024-11-10 17:50:10

.net core使用jexus配置https的相关文章

CentOS ASP.NET Core Runtime Jexus跨平台布署

.net core 开源和跨平台,能布署到当前主流的Windows,Linux,macOS 系统上.本篇我们将在 Linux 系统上使用 ASP.NET Core Runtime 和 Jexus 布署运行 ASP.NET Core 网站. Linux 系统选的是 CentOS 7.4 64位 .NET Core 安装的是 ASP.NET Core Runtime 2.1(当时最新),其实也可以安装.NET Core SDK,但没有必需,运行环境 Runtime 就OK了. Jexus 用的是 5

ASP.NET Core 1.0 部署 HTTPS

ASP.NET Core 1.0 部署 HTTPS ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) 提示 更新时间:2016年01月23日. 在目前介绍 ASP.NET Core 1.0 的中英文文章中,我没有找到关于部署HTTPS的, 究其原因,除了暂时无法跨平台外,就算是很少人有这个需求,但我还是决定写一下. 警告 目前( 1.0.0-rc1-update1 )仅支持完整版的dnx451,dnxcore5需要rc2的支持.目前只能运行在Win

9.jexus 配置ssl

这里非常感谢宇内流云,这是他的博客http://www.cnblogs.com/yunei/. 1,运行环境 CentOS7 jexus5.8.2.9(独立版) jexus 的下载地址 https://www.linuxdot.net/ 右侧 往下拉就能看到重要下载. tar -zxvf jexus-5.8.2-x64.tar.gz 官方的话比较建议放在/usr/jexus 但是我比较喜欢将其放在/opt/jexus下面 jexus下有两种配置方式:反向代理和端口代理,端口的话现在还不支持ssl

ASP.NET Core 1.0 部署 HTTPS (.NET Core 1.0)

这两个月要做一个项目,正逢ASP.Net Core 1.0版本的正式发布.由于现代互联网的安全要求,HTTPS加密通讯已成主流,所以就有了这个方案. 本方案启发于一个旧版的解决方案: ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1) http://www.cnblogs.com/qin-nz/p/aspnetcore-using-https-on-dnx451.html?utm_source=tuicool&utm_medium=referral

ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)

ASP.NET Core 1.0 部署 HTTPS (.NET Framework 4.5.1)? 警告 您当前查看的页面是未经授权的转载! 如果当前版本排版错误,请前往查看最新版本:http://www.cnblogs.com/qin-nz/p/aspnetcore-using-https-on-dnx451.html 提示 更新时间:2016年01月23日. 在目前介绍 ASP.NET Core 1.0 的中英文文章中,我没有找到关于部署HTTPS的, 究其原因,除了暂时无法跨平台外,就算是

tomcat配置https协议

tomcat配置https协议 1.找到本地jdk底下的bin目录,bin目录底下存在文件keytool.exe(在bin目录下空白处,按住shift右击,打开命令窗口,如下图) 2.在cmd的命令窗口,输入命令(keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "D:\tomcat.keystore" ) 根据提示依次输入: 密钥库口令:123456(这个密码非常重要) 名字

ASP.NET Core 中的配置

前言 配置在我们开发过程中必不可少,ASP.NET中的配置在 Web.config 中.也可配置在如:JSON.XML.数据库等(但ASP.NET并没提供相应的模块和方法). 在ASP.NET Core中Web.config已经不存在了(但如果托管到 IIS 的时候可以使用 web.config 配置 IIS), 而是用appsettings.json和appsettings.(Development.Staging.Production).json配置文件 (可以理解为ASP.NET中的Web

.Net core下的配置设置(二)——Option

我在前面的文章.Net core下的配置设置(一)——Configuration中介绍了.net core下配置文件的读取方法,在.net core中,直接从Configuration对象中读取的并不多,大多是用的配置依赖注入的方式Option,本文这里简单的介绍下它的用法. 首先还是以一个简单的配置文件为例: {  "section": {    "key1": "value2",    "key2": -5  }} 如下是

.Net core下的配置设置(一)——Configuration

ASP.NET Core 中提供了一个Configuration 包,用以应用配置基于配置提供程序建立的键值对.这里以json文件配置的方式,简单的介绍一下它的用法. 首先定义一个配置文件appsettings.json: {    "key1": "value1",    "key2": -1,        "subsection":  {            "key1": "value2