Tomcat8.5 生成https协议

tomcat发送https请求配置 https生成jks与配置tomcat等操作。生成cer 生成服务端文件与客户端文件 立即下载

注:tomcat不同版本配置SSH的方法稍微不同

一、生成数字证书

1、找到jdk自带的生成数字证书的“keytool.exe”文件

在jdk的bin目录下找到“keytool.exe”,我的文件路径是“D:\java1.8\jdk\bin”

2、打开cmd,进入“D:\java1.8\jdk\bin”目录,执行下面命令

keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore ".keystore"

// 输入密钥

输入密钥库口令:123456

// 输入域名

您的名字与姓氏是什么:localhost

// 输入组织单位名称,例如tomcat

您的组织单位名称是什么:tomcat

// 输入组织名称,例如apache

您的组织名称是什么:apache

// 输入所在城市名

您所在的城市或区域名称是什么:zhengzhou

// 输入省名称

您所在的省/市/自治区名称是什么:henan

// 输入国家的代码

该单位的双字母国家/地区代码是什么:cn

// 确认信息,输入y

CN=localhost, OU=tomcat, O=apache, L=zhengzhou, ST=henan, C=cn是否正确?

最后重新输入密码:123456

3、在“D:\java1.8\jdk\bin”目录下会生成文件“.keystore”,这个文件即是数字签名文件。

二、配置tomcat服务器

官网SSH配置地址:http://tomcat.apache.org/tomcat-8.5-doc/ssl-howto.html

1、把“.keystore”文件放在tomcat的bin目录下

2、修改tomcat的conf目录下的“server.xml”文件

去掉注释修改如下:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150"  SSLEnabled="true">

       <SSLHostConfig>

              <Certificate certificateKeystoreFile="D:\java1.8\jdk\bin\.keystore" certificateKeystoreType="JKS"  certificateKeystorePassword="123456" />

       </SSLHostConfig>

</Connector>

<!-- 也可以将“.keystore”放在tomcat的conf目录下,然后把certificateKeystoreFile="D:\java1.8\jdk\bin\.keystore"中的地址修改为certificateKeystoreFile="conf/.keystore" -->

 

3、验证是否成功

在浏览器中输入以下地址,验证是否成功,如果成功会出现tomcat管理页面。

https://localhost:8443/

 

4、配置默认SSH(配置443端口),修改如下(共3处)

(1)第1处,此处也可以完全注释

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="443" />

(2)第2处

<Connector port="443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150"  SSLEnabled="true">

       <SSLHostConfig>

              <Certificate certificateKeystoreFile="D:\java1.8\jdk\bin\.keystore" certificateKeystoreType="JKS"  certificateKeystorePassword="123456" />

       </SSLHostConfig>

</Connector>

(3)第3处

<Connector port="8009" protocol="AJP/1.3" redirectPort="443" />

三、错误处理

(1)出现:Address already in use: bind

443端口已经被占用

 

基于MobileNet⁃DOA的无人机射频信号识别方法 本文提出了一种基于MobileNet-DOA模型的无人机射频信号识别方法,用于解决低信噪比环境下无人机型号和飞行模式识别率低的问题。该方法首先采用变分模态分解(VMD)进行信号预处理以降低噪声干扰,然后通过短时傅里叶变换(STFT)将信号转换为时频图。在模型设计上,将DOConv卷积融入MobileNetv4模型以增强特征提取能力并提高运算速度,同时引入FA注意力机制提升低信噪比环境下的识别精度。实验结果表明,该方法在-15~15dB信噪比范围内的平均识别准确率达到94.83%,显著优于现有方法,特别在-1 阅读详情

相关推荐

深入解析UVM寄存器模型:reg2bus与bus2reg的隐式调用机制

本文深入解析了UVM寄存器模型中reg2bus与bus2reg函数的隐式调用机制。通过追踪一次寄存器访问的完整旅程,揭示了这两个关键函数是如何在uvm_reg_map和uvm_reg_predictor中被框架自动调用的,从而在抽象的寄存器操作与具体总线事务之间完成转换,并实现镜像值的自动更新。掌握此机制是高效调试和灵活应用UVM寄存器模型的基础。

weixin_29211309的博客 441

tomcat8.5配置https

先进入tomcat conf目录下,创建一个文件夹key然后,keytool.exe 命令位于Javajdk1.8.0_77in的目录下,如果没有配置Jdk的环境变量,就要进入目录再使用。命令参数部分解释:**C:apache-tomcat-8.5.31confkey omcat.keystore :**表示数字证书生成后的文件路径:表示有效时间,36500天,默认90天。

m0_67402125的博客 2393

空心杯电机在美容仪器中的应用:为什么你的洗脸刷动力这么强?

本文深入解析了空心杯电机如何成为高端美容仪器的核心动力源。通过对比传统电机,揭示了其无铁芯、低惯量、零齿槽效应的技术优势,从而实现了强劲动力、极致静音与细腻震动的用户体验。文章详细阐述了空心杯电机在洁面刷、导入仪等美容仪器中的具体应用与选型考量,并指出了开发中驱动匹配、测试等关键实战要点。

j2k3l4的博客 1013

Tomcat8.5 使用https协议

Tomcat8.5 使用https协议 生成证书 d: cd D:\Program Files\Java\jdk1.8.0_201\jre\lib\security> keytool -genkey -v -alias tomcat -keyalg RSA -keystore D:\sso\apache-tomcat-8.5.51\conf\key\tomcat.keystore -validity 36500 server.xml配置 1、注释掉8080端口配置 <!--<Con

chenglindesign的博客 486

从模组到集装箱:手把手拆解一个储能BMS的软硬件架构设计与通信组网

本文深入解析储能BMS的软硬件架构设计与通信组网,从电芯采样到系统集成的全链条技术实现。详细介绍了三级硬件架构(AFE、CMU、BMU)的设计要点,以及软件分层实现中的驱动层、应用层核心算法和通信协议栈。通过实战案例分享CAN网络搭建、调试工具链和系统验证测试经验,为储能系统开发提供实用指导。

weixin_30752699的博客 464

ANC降噪学习

概述 ANC,英文名称:Active Noise Control,主动降噪。其原理是降噪系统电路产生降噪MIC接收的外界环境噪音相等的反相信号,将噪声抵消。核心算法 ANC降噪实现核心算法为:FxLMS(最小均方差算法)。最小均方差算法以均方误差为代价函数,并使误差降到最小的算法。 具体算法推导这里不做具体介绍,这里直接列出表达式: ...

王小壮的博客 2万+

tomcat8.5设置https

打开防火墙设置,选高级设置,入站规则,新建端口,443,允许通行。

jun_bai的博客 830

用YOLO11-seg玩转裂缝分割:CBAM注意力魔改+轻量化GhostConv实战

本文详细解析了如何利用YOLO11-seg进行裂缝分割任务,结合CBAM注意力机制和GhostConv轻量化改造,显著提升模型性能。通过实战案例展示从数据准备、模型训练到部署优化的全流程,特别针对小目标检测和复杂背景干扰等挑战提供解决方案,最终实现高效准确的裂缝检测系统。

j0k1l2m3n的博客 287

Tomcat 8.5 配置https协议、http自动转向https(证书文件为 .pfx 格式)

一、前言 最近接手一个老项目进行维护,其中老项目是基于http的请求来的,所以导致用户在访问页面的时候总是弹出莫名其妙的广告,对用户的体验性特别不友好,而且安全性也有很大的隐患;然后就对http协议换为https,步骤如下 (此次是基于tomcat8.5、证书类型为.pfx 格式来的) 1、去CA机构申请SSL证书(阿里云、腾讯云都有免费一年的证书可以申请) 2、准备tomcat8.5 服务器...

无名氏灬的博客 10万+

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案

hwasan实例分析踩内存之一:camx进程stack tag-mismatch的三种解决方案。

1291

OPPO 数据分析面试题及参考答案

如何设计共享单车数据库的各个字段? 对于共享单车的数据库设计,首先考虑用户相关的字段。用户表可以包含用户 ID,这是一个唯一标识符,用于区分不同用户;姓名,记录用户的真实姓名;联系方式,比如手机号码,方便在出现问题时联系用户;注册时间,记录用户何时开始使用共享单车服务;信用分数,用于衡量用户使用共享单车过程中的行为是否合规,比如是否按时归还车辆等。 车辆信息表要有车辆 ID,这是车辆的唯一标识;车辆类型,例如普通单车、电动单车等;投放时间,即车辆投放到市场的时间;车辆状态,包括是否可用(如正

大模型大数据攻城狮的专栏 1186

利用Tomcat9.0.x搭建CAS中央认证服务器【协议采用HTTPS】

CAS中央认证服务器搭建软件版本软件配置1、生成key2、Tomcat配置3、CAS打包运行端口问题 软件版本 操作系统 Windows10 jre8 Tomcat 9.0.59 CAS 5.3 Tomcat下载地址,这里采用windows exe安装版本,链接在此, CAS 版本的下载地址在此。 软件配置 1、生成key 进入D:\jdk8\bin\目录,使用Java命令行工具keytool 生成key,按照提示填写字段,如密码、用户姓名等。 keytool -genkeypair -alias "t

追寻上飞的博客 1708

YOLOv11 模型轻量化全流程:从剪枝到量化,打造移动端“极速检测利器”

将浮点模型量化为INT8模型,减少内存占用并加速推理。# 加载剪枝后的模型# 转换为TorchScript# 静态量化# 保存量化模型量化后模型推理速度可再提升20%,而mAP损失小于1%。

m0_64661770的博客 465

CAS服务端的搭建并配置OAtuh2.0协议

CAS认证是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS是耶鲁大学发起的一个开源项目,旨在为Web应用系统提供一种可靠的SSO解决方案。

梧桐树的博客 2381

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

tomcat配置https

Tomcat配置https 环境:apache-tomcat-8.5.37 +jdk1.8.0_151 1、cmd进入到jdk1.8.0_151\bin目录下 2、为tomcat服务器生成证书 keytool -genkey -v -alias tomcat -keyalg RSA -keystore E:\https\tomcat.keystore -validity 36500 ...

weixin_30505485的博客 76

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Tomcat8.5服务器配置Https协议的SSL证书及Http自动跳转到Https

笔者用的是阿里云的服务器和免费证书(穷 首先 需要去阿里云的SSL证书管理控制台下载SSL证书 下过来是这样的: 然后 把证书中的pfx后缀的文件复制到 tomcat/conf/cert 目录下 也可复制到tomcat/cert下 看自己喜好 只要配置的时候填写的路径一致即可 注:只需复制pfx文件 cert 目录默认是不存在的 需要自己创建 创建完了把pfx文件传上去即可 然后修改服务器的s...

"✧treasure mountain✧" 8712

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Tomcat 8.5 配置Https

Tomcat 8.5 配置Https1.生成数字证书2.配置Tomcat的server.xml文件 观前提示: 本文所使用的JDK版本为1.7.0_80,Tomcat版本为8.5.34。 1.生成数字证书 这里我们使用jdk自带的keytool.exe生成,我的keytool.exe所在目录为D:\Program Files\Java\jdk1.7.0_80\bin(jdk的bin目录下) 打开c...

weixin_43611145的博客 2060

Tomcat8.5配置https和SpringBoot配置https

SSL证书的作用:①验证网站是否可信(针对HTTPS);②验证某文件是否可信(是否被篡改)。SSL证书就是CA机构颁发的证书。虽然人人都可以找工具制作证书,但个人制作出来的证书是没啥用的。因为你不是权威的CA机关,自己搞的证书不具有权威性。SSL证书授权中心是什么?SSL证书授权中心是我们常说的CA机构,CA是英文 Certificate Authority 的缩写,也叫“证书授权中心”。

wangxudongx的专栏 1847

使用https协议配置Tomcat(单向认证)(HTTPS Protocol Configuration Tomcat (one-way Authentication)

超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等,本章详细介绍使用https搭建Tomcat。

Linux运维老纪的博客 1027

tomcat8.5 配置https,生成免费证书

测试环境 Windows Server 2012 R2 Datacenter tomcat8.5.30 步骤                   1.生成证书 这里使用自己生成的免费证书。在${JAVA_HOME}/bin 下可以看到keytool.exe,在改目录打开cmd然后输入: keytool -genkey -v -alias tomcat -keyalg RSA -ke...

vzdong1的博客 2111

【配置问题】一起学习 tomcat8.5 配置 https(我也用上https了!)

文章目录Why https?tomcat 8.5配置https注意事项 Why https? HTTP 明文传输,数据都是未加密的,安全性较差,HTTPS(SSL+HTTP) 数据传输过程是加密的,安全性较好。 使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Co...

sunshine2285的博客 3365

Tomcat 8.5——配置阿里云免费SSL证书(PFX格式证书)[启用HTTPS协议]

基本概念 SSL证书:SSL证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本。因为配置在服务器上,也称为SSL服务器证书。 SSL 证书就是遵守 SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发,具有服务器身份验证和数据传输加密功能。 SSL证书通过在客户端浏览器和Web服务器之间建立一条SSL安全通道(Secure socket layer(SSL)安全协议...

无限迭代中...... 2577

【中间件】TOMCAT8支持HTTPS协议

默认情况下,Tomcat是不支持HTTPS协议的,当然该功能TOMCAT是有的  HTTPS协议的配置方法如下,参考wangshang

古怪的小窝 7727

Tomcat http改成使用https协议(SSL证书)

我们想要通过https访问程序,首先需要获得一个数字证书,自己给自己签发而来的证书也叫自签名ssl证书,这种类型的证书可以随意签发,不受任何约束和监督,也不受各大浏览器的信任,基本没什么安全性可言,所以https证书获取不建议使用这种。 而由受信任的CA机构签发的https证书,才是用户们正确的选择。这种CA机构签发证书需要经过一系列的审核,而且是有有效期的,一般不超过2年,能兼容市面上大...

zhangshaopeng的博客 1万+
上一篇: 基于jFreeChart生成散点图和折线图
下一篇: 多元线性回归拟合公式
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值