精华内容
下载资源
问答
  • WSS

    2014-06-11 18:00:05
    2. 下载wss程序包 3. 将wss程序包下的wss目录拷贝至wampserver安装目录/www/ 4. 修改httpd.conf : a. 修改Listen 端口号 b. 找到项,注释#Deny from all, 增加Allow from all c. 启用mod_proxy_...

    1. 下载安装wampserver

    2. 下载wss程序包

    3. 将wss程序包下的wss目录拷贝至wampserver安装目录/www/

    4. 修改httpd.conf :

    a. 修改Listen 端口号

    b. 找到<Directory>项,注释#Deny from all, 增加Allow from all

    c. 启用mod_proxy_http.so    //多个web服务器,IIS, TOMCAT需启用该项

    d. 启用mod_proxy.so            // //多个web服务器,IIS, TOMCAT需启用该项

            e. ProxyPass /php !
                ProxyPass /asp/ http://localhost/
                ProxyPassReverse /asp/ http://localhost/
               ProxyPass /jsp/ http://localhost:8080/
               ProxyPassReverse /jsp/ http://localhost:8080/

    5. 编辑wss\config\tank_config.php,修改数据库连接项,用户名,密码;(使用wampserver自带外的mysql时需要设置此项)

    展开全文
  • WSS任务推送微信接口 当WSS系统分派任务后,自动将任务通过微信推送给指定用户。 如何使用 1. 在docker中使用 1.1 编译Docker镜像 下载程序代码 git clone https://github.com/nagucc/wss-wx.git 执行build命令: ...
  • websocketpp wss

    千次阅读 2019-12-13 16:53:53
    根据web端证书生成wss客户端需要的*.pem文件 https://blog.csdn.net/longji/article/details/82429143 使用 openssl.exe 根据证书文件 17ce.com 生成 client.pem 文件。 在openssl.exe目录下运行: openssl x509 -...

    一. wss 认证

    关于SSL认证说明(转载)https://www.cnblogs.com/bluestorm/p/10571989.html

    二.从浏览器生成wss客户端

    1.用谷歌打开网站

    在这里插入图片描述

    2.点击"小锁", 在证书路径中所有的证书都需要生成*.pem。


    在这里插入图片描述

    3.导出证书

    选择第一级证书,点击查看证书>>详细信息>>复制到文件>>下一步>>选择DER 编码二进制X.509(.CER)>>下一步>>指定导出文件路径文件名(可直接导出到openssl的bin目录下),完成证书导出(文件后缀.cer)。

    4.生成 .pem 文件

    使用 openssl.exe 将证书文件转为.pem 文件,命令如下

    openssl x509 -in xxx.cer -inform der -out xxx.pem
    

    重复 2 3 4步骤依次将各级证书,全部生成对应的.pem文件。然后将各个.pem文件的内容copy到同一个.pem文件内(如client.pem)。
    websocketpp/examples/print_client_tls/print_client_tls.cpp测试只生成一级目录证书,即可连接成功

    5. websockets
    • websockets默认端口 443
    • 地址格式: wss://ip地址:443

    三.websocketpp的wss client demo

    修改 websocketpp/examples/print_client_tls/print_client_tls.cpp内容

    /// Verify that one of the subject alternative names matches the given hostname
    bool verify_subject_alternative_name(const char * hostname, X509 * cert)
    {
        STACK_OF(GENERAL_NAME) * san_names = NULL;
    
        san_names = (STACK_OF(GENERAL_NAME) *) X509_get_ext_d2i(cert, NID_subject_alt_name, NULL, NULL);
        if (san_names == NULL) {
            return false;
        }
    
        int san_names_count = sk_GENERAL_NAME_num(san_names);
    
        bool result = false;
    
        for (int i = 0; i < san_names_count; i++) {
            const GENERAL_NAME * current_name = sk_GENERAL_NAME_value(san_names, i);
    
            if (current_name->type != GEN_DNS) {
                continue;
            }
    
            char * dns_name = (char *) ASN1_STRING_data(current_name->d.dNSName);
    
            // Make sure there isn't an embedded NUL character in the DNS name
            if ((size_t)ASN1_STRING_length(current_name->d.dNSName) != strlen(dns_name)) {
                break;
            }
            // Compare expected hostname with the CN
            result = (strcasecmp(hostname, dns_name) == 0);
        }
        sk_GENERAL_NAME_pop_free(san_names, GENERAL_NAME_free);
    
        return result;
    }
    
    /// Verify that the certificate common name matches the given hostname
    bool verify_common_name(const char * hostname, X509 * cert)
    {
    
        // Find the position of the CN field in the Subject field of the certificate
        int common_name_loc = X509_NAME_get_index_by_NID(X509_get_subject_name(cert), NID_commonName, -1);
        if (common_name_loc < 0) {
            return false;
        }
    
        // Extract the CN field
        X509_NAME_ENTRY * common_name_entry = X509_NAME_get_entry(X509_get_subject_name(cert), common_name_loc);
        if (common_name_entry == NULL) {
            return false;
        }
    
        // Convert the CN field to a C string
        ASN1_STRING * common_name_asn1 = X509_NAME_ENTRY_get_data(common_name_entry);
        if (common_name_asn1 == NULL) {
            return false;
        }
    
        char * common_name_str = (char *) ASN1_STRING_data(common_name_asn1);
    
        // Make sure there isn't an embedded NUL character in the CN
        if ((size_t)ASN1_STRING_length(common_name_asn1) != strlen(common_name_str)) {
            return false;
        }
    
        // Compare expected hostname with the CN
        return (strcasecmp(hostname, common_name_str) == 0);
    }
    
    
    bool verify_certificate(const char * hostname, bool preverified, boost::asio::ssl::verify_context& ctx)
    {
    
        int depth = X509_STORE_CTX_get_error_depth(ctx.native_handle());
    
        if (depth == 0 && preverified) {
            X509* cert = X509_STORE_CTX_get_current_cert(ctx.native_handle());
    
            if (verify_subject_alternative_name(hostname, cert)) {
                return true;
            } else if (verify_common_name(hostname, cert)) {
                return true;
            } else {
                return false;
            }
        }
    
        return preverified;
    }
    
    context_ptr on_tls_init(const char * hostname, websocketpp::connection_hdl) {
    
        context_ptr ctx = websocketpp::lib::make_shared<boost::asio::ssl::context>(boost::asio::ssl::context::sslv23); 
        try {
            ctx->set_options(boost::asio::ssl::context::default_workarounds |
                             boost::asio::ssl::context::no_sslv2 |
                             boost::asio::ssl::context::no_sslv3 |
                             boost::asio::ssl::context::single_dh_use);
    		// 注意此处:set_verify_mode
    		//  选择 verify_peer	  需要  load_verify_file
    		//  选择 verify_none   不需要  load_verify_file
            ctx->set_verify_mode(boost::asio::ssl::verify_peer);
            ctx->set_verify_callback(bind(&Mverify_certificate, hostname, ::_1, ::_2));
            
            // Here we load the CA certificates of all CA's that this client trusts.
            ctx->load_verify_file("client.pem");
    
        } catch (std::exception& e) {
            std::cout << e.what() << std::endl;
        }
        return ctx;
    }
    
    展开全文
  • wss配置

    2019-05-22 21:05:00
    那么问题来了,为啥子wss不行咧?咋配置wss咧?为啥要配置wss呢? 好咧,下面进行讲解。 1、首先得配置ngnix服务器,在配置ssl 443 端口的服务里面添加上如代码 location /websocket { proxy_pass ...

    配置wss的前提是已经配通了ws,可以正常连接并发送数据,并且已经配置好ssl证书,网站可以通过https访问

    那么问题来了,为啥子wss不行咧?咋配置wss咧?为啥要配置wss呢?

    好咧,下面进行讲解。

    1、首先得配置ngnix服务器,在配置ssl 443 端口的服务里面添加上如代码

    location /websocket {
        proxy_pass http://v2.mufengpaobu.com:9105;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    2、然后就是需要在实例化websocket的时候

    $server->set([
        'daemonize' => true,//进程守护 可以后台运行
        'ssl_key_file'  => '/usr/local/nginx/conf/ssl/1839971_v2.mufengpaobu.com.key',
        'ssl_cert_file' => '/usr/local/nginx/conf/ssl/1839971_v2.mufengpaobu.com.pem',
    ]);

     

    展开全文
  • wss-源码

    2021-03-19 19:58:38
    获取SecretID,SecretKey以及调用地址(端点),端点为wss.tencentcloudapi.com,具体参考各产品说明。 获取安装 通过Composer安装 通过Composer获取安装是使用PHP SDK的推荐方法,Composer是PHP的依赖管理工具,...
  • WSS2.0升级到WSS3.0

    2017-11-09 00:25:00
    WSS2.0升级到WSS3.0的过程: 1.检查服务器上面是否安装.Net Framework3.0(必须要安装的)。 2.安装WSS3.0(安装后别做配置) 选择第一项(逐步升级),默认的是第二项(自动升级)。如果选择自动升级,则在装完WSS3.0...



    WSS2.0升级到WSS3.0的过程:

    1.检查服务器上面是否安装.Net Framework3.0(必须要安装的)。
    2.安装WSS3.0(安装后别做配置)
    选择第一项(逐步升级),默认的是第二项(自动升级)。如果选择自动升级,则在装完WSS3.0后,会自动对服务器上的所有网站进行升级,但是存在很大的风险,如果升级失败,结果导致原先的WSS2.0的网站也无法访问。所以建议选择逐步升级,这样可以一个网站一个网站升级,而且如果升级失败,还可以恢复。比较保险一些。
     
    3.测试content数据库。
    在DOS下,执行“C:\program\common Files\Microsoft Shared\web Server extensions\12\bin”目录下的“prescan.exe /all”对数据库进行扫描。如果扫描结果正常进行下一步,如果数据库有不完整数据,此次扫描将提示错误,根据日志可以查到不完整的数据,通过清除这些数据的方法,可以完成这次的测试。(问题常常会出现在这里,所以这一步最关键,遇到错误要一步一步地去排除。)
     
    4.配置WSS3.0。
    选择重新创建一个新的服务器组。
    配置数据库,该数据用于后台的配置数据库。
    其余的步骤,默认值就可以了,进行大概10分钟时间,就完成配置了。
     
    5.登陆到管理中心
    选择Farm Topology中的szwss01
     
    6.启动Windows SharePoint Services Search服务
     
    7. 配置Windows SharePoint Services Search的数据库
    确认所有必需的服务都启动。接下来要升级服务器了。
     
    8.升级内容数据库
    选择“Operations”,然后点击“Site Content upgrade status”(如果成功升级后,这里的“Upgrade and Migration”将消失。)
     
    9.选择需要升级的站点,然后点击Begin upgrade
     
    10.为旧的站点建立新的链接端口和应用池。
    点击开始升级后,会有一个升级页面,升级并不是直接升级原先的站点数据库 和Web站点,而是会建立一个新的数据库和新的站点,然后将原先WSS2.0的 站点改变到另外一个端口或者另外一个主机头。所以升级完毕之后,原先 WSS2.0的站点仍然可以访问。当你删除升级后的WSS3.0的站点的时候,原先 的WSS2.0的站点也会自动的改回去。这一点非常重要,因为如果升级后站点 的问题太多,你还有退路恢复。
     
    11.选择内容数据库
    WSS3.0会首先检查数据库然后给出一个信息列表并且给出升级后的数据库的名字。如果一切没有问题,就点击“升级网站”按钮,点完按钮后需要耐心等待一段时间,升级的过程根据数据库的大小和网站的个数不同而花费的时间不同。
     
    12.完成升级。
    等升级完成,点击左边的“Finalize Upgrade”,确定升级完成。
     
     
    参考网站:
    1.[url]http://sps.cnblogs.com/[/url]   博客园-SharePoint团队
     


         本文转自yuhaijunll 51CTO博客,原文链接:http://blog.51cto.com/yuhaijunll/50398,如需转载请自行联系原作者




     
    展开全文
  • Workerman如何创建一个wss服务,使得客户端可以用过wss协来连接通讯,比如在微信小程序中连接服务端。 答: wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。 所以只需要在...
  • maven工程,java版本的wss客户端(不是ws客户端,SSL Websocket),可以正常连wss服务器和收发消息。 注意:代码中的wss地址需要根据自己的实际地址进行修改。
  • 主要为大家详细介绍了Nodejs搭建wss服务器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • pomelo wss

    2019-04-09 18:07:51
    pomelo 配置 wss, wsswss下不支持ip地址的写法,写成域名形式。 1.首先要去申请证书。 2.配置如下: 2.
  • WSS_1.3.2.zip

    2019-10-28 17:40:47
    wss-1.3.2.zip,可以搭建项目管理平台的开源软件,搭配wampserver安装方便
  • wss音频格式转换

    2015-09-19 10:21:31
    wss音频格式批量转换器,可以对一些wss音频格式游戏的声音进行修改.
  • WSS是一个免费的基于浏览器的多任务协作管理系统,可以管理你的项目、任务、工作时间、工作日志等。WSS比其他人更注重用户体验和清晰的界面。 对于项目经理来说,它是非常容易获得的。 谁在使用 WSS? ●企业领袖...
  • nginx代理wss

    千次阅读 2017-10-30 12:24:04
    nginx代理wss
  • websocket测试工具,支持ws wss服务端和客户端

    万次阅读 热门讨论 2019-07-09 11:28:05
    介绍一个名为:WebsocketMan的websocket测试工具,支持ws wss服务端和客户端。可以将请求保存为文件,支持header非常方便测试。 客户端: 服务器: 地址: ...
  • 论文插图毕业论文插图WSS
  • webSocket配置wss访问

    2018-12-10 21:03:27
    Springboot2.1配置ssl实现https访问,集成WebSocket,实现ws和wss访问
  • apache配置wss

    2021-07-23 13:21:46
    ws是没有证书安全的websocket,wss是有ssl证书安全的websocket 在apache环境下配置wss步骤: 1.需要在httpd.conf启用两个模块:mod_proxy.so和mod_proxy_wstunnel.so 。 启用方法:需要在httpd.conf 中添加以下...
  • Android-DDP-WSS 一个分支,为流星提供WSS支持。 该项目包含来自代码。 用法 Android-DDP的界面mailny保持不变,只是只有一个新的构造函数来设置自定义Web套接字选项: public Meteor(final Context context, ...
  • 创建wss服务

    2020-07-08 10:18:32
    Workerman如何创建一个wss服务,使得客户端可以用过wss协来连接通讯,比如在微信小程序中连接服务端。 答: wss协议实际是websocket+SSL,就是在websocket协议上加入SSL层,类似https(http+SSL)。 所以只需要在...
  • 本文为大家分享了Nodejs搭建wss服务器的教程,供大家参考,具体内容如下首先使用OpenSSL创建自签名证书:#生成私钥key文件openssl genrsa 1024 > /path/to/private.pem//#通过私钥文件生成CSR证书签名openssl ...
  • websocketpp客户端源码,实现wss连接与发送数据,接收数据。需要下载websocketpp和boost,以及openssl。
  • Winform发布wss

    2021-08-14 10:08:12
    之前没有试通局域网发布wss服务。借助昨天发布成功https的成果轻松完成了wss发布。 一样的得到证书 # 生成私钥 openssl genrsa -aes256 -passout "pass:mypassword" -out key.pem 4096 # 生成公钥 openssl req -new ...
  • websocketpp wss客户端代码

    千次阅读 热门讨论 2018-11-30 11:09:06
    websocket使用wss协议,使用websocketpp库时,需要使用openssl库支持。   不使用ssl,即使用ws非wss #include &lt;websocketpp/config/asio_no_tls_client.hpp&gt; #include &lt;websocketpp/client.hpp...
  • PHP 配置wss

    2021-06-04 14:09:06
    最近写微信小程序 要实现通讯功能 需要配置wss wss 其实就是 websocket + ssl 就像https http+ssl 只需要配置好ssl 即可 我在这使用的是GatewayWorker //ssl 证书文件更路径 $context = array( 'ssl' => array...
  • 一、ws和wss的区别 Websocket使用 ws 或 wss 的统一资源标志符,类似于 HTTP 或 HTTPS,其中 wss 表示在 TLS 之上的 Websocket ,相当于 HTTPS 了。如: ws://example.com/myWs wss://example.com/myWs 默认情况下...
  • 测试管理WSS

    2014-03-08 01:58:22
    WSS测试管理软件,学习,企业应用不广泛,作为研究课题或是毕业项目比较实用
  • WSS1.3.2_cn.zip

    2017-01-04 14:27:35
    WSS1.3.2_cn.zip
  • Nginx 配置https及wss

    千次阅读 2019-09-09 20:57:01
    为了保护 Web 安全,要求我们使用 HTTPS(HTTP + SSL) 以及 WSS(Websocket + SSL) 进行通信。HTTPS 及 WSS 协议旨在保护用户数据在网络上不被窃听(机密性) 和不被篡改(完整性)。 HTTP 与 HTTPS 区别 HTTPS ...
  • location /wss

    2021-09-27 00:33:37
    location /wss { proxy_pass http://127.0.0.1:8071; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Real-IP $remote_addr; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 27,291
精华内容 10,916
关键字:

wss