精华内容
下载资源
问答
  • 如何制作证书

    2020-07-29 09:45:10
    请按以下步骤制作证书和服务器证书,再也不用花钱购买跟证书了(以weblogic中间件为例,其他中间件也类似)! 一、准备工作 自行安装WEBLOGIC 12及以上版本,创建好doman。 自行安装Java 1.8及以上版本,配置好...

    请按以下步骤制作跟证书和服务器证书,再也不用花钱购买跟证书了(以weblogic中间件为例,其他中间件也类似)!

    一、准备工作

    • 自行安装WEBLOGIC 12及以上版本,创建好doman。
    • 自行安装Java 1.8及以上版本,配置好Java环境

    二、生成秘钥

    • 制作一个跟证书
    keytool -genkeypair  -alias rootCA -keyalg RSA -dname "CN=Certum Trusted Network CA,OU=Certum Certification Authority,O=Unizeto Technologies S.A.,C=PL"  -validity 3650 -keystore weblogic.jks
    • 发行二级证书(CN=127.0.0.1,需自行修改为服务器IP地址,中文根据实际情况修改)
    keytool -genkey -v -alias weblogic -keyalg RSA -keysize 1024 -keypass 123@qwe -dname "CN=127.0.0.1,OU=应用系统名称,O=机构名称,L=重庆市,ST=重庆,C=CN" -validity 3650 -storepass 123@qwe -keystore weblogic.jks
    • 导出二级证书
    keytool -certreq -alias weblogic -file weblogic.csr -keystore weblogic.jks
    • 颁发证书
    keytool -gencert -alias rootCA -infile weblogic.csr -outfile weblogic.cer  -keystore weblogic.jks
    • 导回证书库
    keytool -importcert -alias weblogic -file weblogic.cer -keystore weblogic.jks
    • 生成一个受信任的证书库
    keytool -import -alias weblogic -trustcacerts -file weblogic.cer -keystore weblogic_trust.jks
    • 导出跟证书
    keytool -exportcert -alias rootCA -file rootCA.cer  -keystore weblogic.jks

    三、weblogic配置

    1、将weblogic.jks 、weblogic_trust.jks拷贝到domain目录下;

    2、将rootCA.cer安装(双击rootCA.cer安装)到IE浏览器的“受信任的根证书颁发机构”;

    • 登陆weblogic控制台,配置Keystore(keystores选择Custom identity and Custom Trust...,密码:123@qwe)

    • 配置SSL(Private Key Alias:weblogic,Passphrase:123@qwe)

    • 启用 SSL 监听端口(SSL监听端口8012,可自行修改)

    四、验证

    • 一切正确的话,就可以用https协议和8012端口访问应用,不会出现感叹号和提示证书问题

     

    五、IE设置

    • 启动TLS1.1、TLS1.2(如果无法访问再设置)

    展开全文
  • 如何制作和使用自签名证书 在计算机加密和安全领域中,我们会时常遇到:自签名安全证书。 因为自签名证书签发相对于商业证书流程简单,费用低廉(除了电费几乎不花钱),更新容易。所以在开发领域、甚至一些小众场景...

    如何制作和使用自签名证书

    在计算机加密和安全领域中,我们会时常遇到:自签名安全证书。

    因为自签名证书签发相对于商业证书流程简单,费用低廉(除了电费几乎不花钱),更新容易。所以在开发领域、甚至一些小众场景下特别常见,比如 K8S / MySQL 集群中的 TLS 认证,一些大的集团、公司的内网服务、网站安全证书、企业路由器设备的管理后台、用于管理企业员工的“安全准入客户端”等不乏使用这个方案。

    本篇文章就来聊聊如何快速生成证书,以及如何安装部署到不同的环境中。

    写在前面

    经常有人说,使用自签名证书不安全,会导致中间人攻击。这里需要为自签名证书“正名”,如果你制作生成的证书被妥善保管(即不泄漏并被二次利用),并将其加入你的有限的设备(自用、团队使用)的证书信任列表中,在明确你的设备访问地址(不涉及DNS攻击),你是不会遇到中间人攻击的。

    比如当你遇到类似下面的场景,不一定会遇到不安全的事情,有可能只是管理员忘记换掉过期证书、或者你自己生成证书后,使用了一台没有信任证书的设备进行访问、也可能是管理员压根没有想在公网签发证书,想做一个私有的网站:

    常见的网站因为证书问题而产生的警告页面

    多数时候我们看到的不安全的证书是因为应用错误配置、有心人基于 DNS 地址攻击、证书过期造成、甚至是我们未曾正确配置证书信任白名单造成的。

    一旦我们正确生成证书,在妥善保存证书后,进行了有限设备的白名单设置后,我们的证书和商业证书的使用是几乎没有差别的(除了无法使用 OCSP、EV 证书使用上存在一定额外工作外)。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m800NGZS-1612587763873)(https://attachment.soulteary.com/2021/02/06/after-trust.png)]

    那么来聊聊如何快速生成证书。

    使用命令行脚本生成自签名证书

    最常见和通用的做法便是安装配置一个带有 openssl 环境的系统,然后使用命令行执行类似下面这样的命令:

    openssl req -x509 -newkey rsa:2048 -keyout ssl/${fileName}.key -out ssl/${fileName}.crt -days 3600 -nodes ...
    

    这里如果你选择不使用配置文件的话,得参考openssl 文档,附带一堆参数,或需要交互式的输入一堆选项,并祈祷在中间每一步没有输入出错,例如下面这样:

    enerating a RSA private key
    ....................................................................................................................................................................................................................................................................++++
    .............................................................++++
    writing new private key to 'example.key'
    -----
    You are about to be asked to enter information that will be incorporated
    into your certificate request.
    What you are about to enter is what is called a Distinguished Name or a DN.
    There are quite a few fields but you can leave some blank
    For some fields there will be a default value,
    If you enter '.', the field will be left blank.
    -----
    Country Name (2 letter code) [AU]:CN
    State or Province Name (full name) [Some-State]:XX
    Locality Name (eg, city) []:XXXX
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Example, Inc
    Organizational Unit Name (eg, section) []:IT
    Common Name (e.g. server FQDN or YOUR name) []:example.com
    Email Address []:example@soulteary.com
    

    相比之下,使用类似下面的配置生成证书会稍微容易那么一些:

    #!/bin/sh
    
    OUTPUT_FILENAME="lab.com"
    
    printf "[req]
    prompt                  = no
    default_bits            = 4096
    default_md              = sha256
    encrypt_key             = no
    string_mask             = utf8only
    
    distinguished_name      = cert_distinguished_name
    req_extensions          = req_x509v3_extensions
    x509_extensions         = req_x509v3_extensions
    
    [ cert_distinguished_name ]
    C  = CN
    ST = BJ
    L  = BJ
    O  = HomeLab
    OU = HomeLab
    CN = lab.com
    
    [req_x509v3_extensions]
    basicConstraints        = critical,CA:true
    subjectKeyIdentifier    = hash
    keyUsage                = critical,digitalSignature,keyCertSign,cRLSign #,keyEncipherment
    extendedKeyUsage        = critical,serverAuth #, clientAuth
    subjectAltName          = @alt_names
    
    [alt_names]
    DNS.1 = lab.com
    DNS.2 = *.lab.com
    DNS.3 = *.page.lab.com
    
    ">ssl/${OUTPUT_FILENAME}.conf
    
    openssl req -x509 -newkey rsa:2048 -keyout ssl/$OUTPUT_FILENAME.key -out ssl/$OUTPUT_FILENAME.crt -days 3600 -nodes -config ssl/${OUTPUT_FILENAME}.conf
    

    类似的脚本,我曾在 Traefik 示例脚本中提到过: https://github.com/soulteary/traefik-example/blob/main/scripts/generate-certs.sh

    还有更简单的方案吗?尤其是在有不断修改 DNS、希望使用脚本自动化签订证书的场景下?

    快速生成证书

    为此我写了一个脚本,并使用容器进行封装,以达到可以使用极其简的命令行来生成证书的目的,并借助容器简化掉了本地需要安装 openssl 依赖的问题,“开箱即用”。相关代码我已经开源,项目地址:https://github.com/soulteary/certs-maker

    比如你想生成一个稍微复杂一些的站点证书,只需要执行下面这行命令就足够了:

    docker run --rm -it -e CERT_DNS="domain.com;*.domain.com;*.a.domain.com" -v `pwd`/certs:/ssl soulteary/certs-maker
    

    执行完毕你将会看到类似下面的日志:

    User Input: { CERT_DNS: 'domain.com;*.domain.com;*.a.domain.com' }
    Generating a RSA private key
    ................................................................................................................................................+++++
    .........................................................+++++
    writing new private key to 'ssl/domain.com.key'
    -----
    

    以及能够在 ssl 目录中看到我们生成的证书文件。

    至于其他的使用方式,比如生成包含多个域名的混合证书、生成单个证书,只需要调整 CERT_DNS 参数的值即可。如果想进一步定制前文提到的证书细节,比如证书签发国家、省份等信息,可以参考开源项目仓库的使用方式,添加其他的参数,这里就不过多赘述了。

    使用 docker-compose 生成

    如果你希望将命令保存下来,作为代码存储在仓库里,也可以考虑编写一个 compose 文件:

    version: '2'
    
    services:
    
      certs-maker:
        image: soulteary/certs-maker
        environment:
          - CERT_DNS=a.com;b.com;c.com;*.d.com;
        volumes:
          - ./certs:/ssl
    

    将上面的内容保存为 docker-compose.yml,然后执行 docker-compose up ,你会在 certs 目录看到生成的证书文件。

    使用证书

    生成证书之后,来聊聊如何使用证书。

    在各种系统上导入证书

    导入证书可以参考下面的文档,过程都很简单,引导证书,然后重启需要使用证书的应用即可。

    在 Java 应用中信任自签名证书

    如果你使用的是 Java 应用访问自签名的网站,应用访问过程会出现因为证书错误而拒绝连接的错误。

    解决这个问题并不复杂,只需要额外做一点点工作,将证书添加到 keystore 中,重启 Java 应用即可:

    sudo keytool -import -alias charles -file /Path-To-Certs/key.crt -keystore $JAVA_HOME/jre/lib/security/cacerts -storepass changeit
    

    这个操作对于证书过期的情况,也同样有效,早先有一篇文章有描述:《使用 Docker 和 Traefik v2 搭建 Confluence 7.3 》

    在 Debian / Ubuntu / Alpine 系统中信任证书

    对于 Debian / Ubuntu 系统,信任证书相当简单,只需要将证书拷贝到“待安装目录”,然后执行证书更新命令即可:

    cp *.crt /usr/local/share/ca-certificates/
    update-ca-certificates
    

    Alpine 也是一样,考虑我们经常在容器场景中使用它,所以这里直接给出一个完整的Dockerfile 示例:

    FROM alpine
    
    RUN apk update && apk add ca-certificates && rm -rf /var/cache/apk/*
    
    ADD ./ssl/*.crt /usr/local/share/ca-certificates/
    
    RUN update-ca-certificates --fresh
    

    搭建配合安装证书使用的 Web 服务

    上文中如果想在客户端(尤其是手机)上安装证书,一定会遇到跨系统传输文件的问题。为了方便分发和安装,这里可以使用 Nginx 启动一个用于分享证书安装的 Web 服务。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Uqx9MFJ7-1612587763874)(https://attachment.soulteary.com/2021/02/06/get-your-certs.png)]

    搭建通用服务

    我们可以使用 Nginx 的 ngx_http_sub_module 和 ** ngx_http_autoindex_module** 模块构建一个能够自动列举证书目录的服务:

    server {
        listen 80;
        server_name localhost;
        location = /favicon.ico {
            empty_gif;
        }
        location / {
            root /public;
            autoindex on;
            sub_filter '<h1>Index of /</h1>'  '<h1>Get Certs</h1>';
            sub_filter_once on;
        }
    }
    

    将上面的内容保存为 default.conf 后,再创建一个名为 docker-compose.yml 的配置文件:

    version: '2'
    
    services:
    
      nginx:
        image: nginx:1.19.6-alpine
        ports:
          - 8080:80
        volumes: 
          - ./default.conf:/etc/nginx/templates/default.conf.template:ro
          - ./public:/public:ro
    

    然后使用 docker-compose up 启动服务后,使用手机访问页面,就能够看到类似下面的页面,然后使用手机访问证书文件进行安装和信任就可以啦。

    更简单的配置方式

    上面的模式我们将配置和服务编排文件分拆成了两个文件,考虑到这个 Nginx 配置十分简单,那么我们是否有办法将其简化呢?

    答案是有的,通过对 command 命令进行调整,我们可以将 Nginx 配置的创建和服务启动同时写在 docker-compose.yml 编排文件中:

    version: '2'
    
    services:
    
      nginx:
        image: nginx:1.19.6-alpine
        ports:
          - 8080:80
        volumes: 
          - ./public:/public:ro
        command: >
          /bin/sh -c "
          echo \"daemon off;\" >> /etc/nginx/nginx.conf;
          echo \"server {
                listen 80;
                server_name localhost;
                location = /favicon.ico {
                    empty_gif;
                }
                location / {
                    root /public;
                    autoindex on;
                    sub_filter '<h1>Index of /</h1>'  '<h1>Get Certs</h1>';
                    sub_filter_once on;
                }
            }\" > /etc/nginx/conf.d/default.conf; nginx;
          "
    

    最后

    最近入手了三根雷电数据线,快过年了,或许可以折腾一下雷电数据线组网开发。

    –EOF


    我现在有一个小小的折腾群,里面聚集了一些喜欢折腾的小伙伴。

    在不发广告的情况下,我们在里面会一起聊聊软件、HomeLab、编程上的一些问题,也会在群里不定期的分享一些技术沙龙的资料。

    喜欢折腾的小伙伴欢迎扫码添加好友。(请注明来源和目的、实名入群,否则不会通过审核)

    关于折腾群入群的那些事


    本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

    本文作者: 苏洋

    创建时间: 2021年02月06日
    统计字数: 6822字
    阅读时间: 14分钟阅读
    本文链接: https://soulteary.com/2021/02/06/how-to-make-and-use-a-self-signed-certificate.html

    展开全文
  • 6.将商户RSA私钥转换成PKCS8格式,将输出内容保存到.pem商户私钥证书文件(执行如下命令) openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt   转载于:...

    1.先下载openssl  下载地址  https://pan.baidu.com/s/1kUK1MJX

    2.下载之后保存在某个盘里(例如在F:/cer/openssl)

     

    3.打开windows的 cmd,切换到目录  F:/cer/openssl/openssl\bin 

     

    4.生成商户RSA私钥(执行如下命令)

    openssl genrsa -out rsa_private_key.pem 1024

     

    5.生成商户RSA公钥文件(执行如下命令)
    openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem

     

    6.将商户RSA私钥转换成PKCS8格式,将输出内容保存到.pem商户私钥证书文件(执行如下命令)

    openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt

     

    转载于:https://www.cnblogs.com/bkpengqing/p/7449280.html

    展开全文
  • 转自https://ask.dcloud.net.cn/article/35985 注意:打包界面的证书别名一定要和制作证书中的一致,不然打包不成功

    转自https://ask.dcloud.net.cn/article/35985

    注意:打包界面的证书别名一定要和制作证书中的一致,不然打包不成功

    展开全文
  • openssl如何制作自签名的CA证书,及利用CA签发证书生成服务器证书及私钥(key)openssl genrsa -des3 -out server.key 1024 去掉key口令openssl rsa -in server.key -out server.key 生成Certificate Signing Request...
  • 如何制作.pfx数字证书

    万次阅读 2012-01-19 10:20:55
    使用VS2005自动创建的.pfx数字证书默认有效期只有一年,并且“颁发者”、“颁发给”均为当前机器名和当前登陆用户名...1、创建一个自己签署的X.509证书.cer和一个私钥文件.pvk,用到.NET自带的makecert工具,命令如下:
  • 1)证书制作+nginx配置双向认证 https://www.jianshu.com/p/b932ca0726f3 按照上面的步骤,获得了: ca-cert.pem——根证书 server-cert.pem——服务端证书 server-key.pem——服务端秘钥 client-cert.pem——客户端...
  • #生成根证书的秘钥对(私钥+公钥) openssl genrsa -out ca.key 4096 #生成根证书 openssl req -new -x509 -days 3650 -key ca.key -out ca.crt #################################################################...
  • 下文是讲述如何制作数字签名证书的过程。  需要准备的工具:makecert.exe、cert2spc.exe、pvk2pfx.exe、signtool.exe。  在MS的SDK6.0中有个证书生成工具makecert.exe, 你可以使用这个工具来生成测试...
  • 五、利用Openssl制作证书的相关命令 1、加密数据 # openssl enc -des3 -in /path/to/somefile -e -out /path/to/somefile.des3 2、解密数据 # openssl enc -des3 -in /path/to/somefile.des3 -d -out /path/to/some...
  • signtool.exe sign /f F:\WorkSpace2.0\VSProject\CustomerWebProtocolHandler\签名工具\测试证书\eosin_sky.pfx /p "123" /t http://timestamp.comodoca.com/authenticode F:\myfuc.exe
  • 苹果证书
  • Windows XP 原代码自带的数字证书过期了,我们在编译代码的时候必须要更新数字证书,为了简单,我制作了一个批处理完成所有的工作。 使用的工具包含在openssl.rar中,使用的操作系统linux和Windows,Win10自带的WSL...
  • C=CN,OU=IT,O=YIXIUWANG,ST=BEIJING,C=CN,L=HD,CN=192.168.1.122,emailAddress=... 服务器证书 keytool -genkeypair -v -alias tomcat -keyalg RSA -validity 730 -keystore c:\ca\tomcat.keystore -dname "C...
  • 1、里面有详细的制作CAB步骤,...2、从制作证书到最后的数字签名以及证书管理。都有详细的步骤说明。 3、里面有描述JSP页面如何实现调用CAB包的截图代码。 4、如有不明,请查阅文档中的联系方式。但请勿无故打扰!
  • http://blog.csdn.net/yannanxiu/article/details/70672744 http://blog.csdn.net/yannanxiu/article/details/70670225
  • http://tieba.baidu.com/p/3551515150 http://jingyan.baidu.com/article/d8072ac49a572fec95cefdb3.html 转载于:https://www.cnblogs.com/wujixiong/p/7003922.html
  • 如何申请数字证书

    2020-10-13 10:34:08
    SSL证书是数字证书(数字证书包括:SSL证书、客户端证书、代码签名证书等)的一种,因为配置在服务器上也称为服务器SSL证书。SSL证书就是遵守SSL协议,由受信任的数字证书颁发机构CA在验证服务器身份后颁发的一种数字...
  • APNS证书制作及备份 ios 开发制作push证书(apns)教你如何制作通知推送的证书(pem格式)
  • 在博客《终结者:HTTPS在Tomcat中的使用(一)——生成证书与配置Tomcat服务器》中介绍了如何生成服务器端证书和配置Tomcat服务器,本篇博客将带着大家一起研究如何生成浏览器端安全证书及其安装方法: 制作安全...
  • 使用easyrsa3来制作证书

    千次阅读 2016-06-15 20:02:28
    [size=medium][color=darkblue]最近研究如何在路由器上面实现openvpn的功能,其中便涉及到使用easyrsa来制作证书的问题,针对最新的openvpn-2.3.11源码包,easyrsa已经不包含在里面,需要单独下载,下载网址为...
  • 如何配置tomcat证书

    千次阅读 2010-12-27 22:28:00
    本文讲述了如何使用 openssl 制作证书、keytool生成证书申请并将证书导入证书库、如何配置tomcat,和配置当中出现问题的解释。 本文用到的工具:OpenSSL.rar(在附件下载) keytool(JDK中自带的工具) 使用 openssl ...
  • 如何配置tomcat证书

    2010-03-19 14:56:00
    前言 项目需要在tomcat中配置ssl认证,学习了一下怎么配置,由于对pki... 本文讲述了如何使用 openssl 制作证书、keytool生成证书申请并将证书导入证书库、如何配置tomcat,和配置当中出现问题的解释。 ...
  • http://cn.cocos2d-x.org/article/index?type=code-ide&url=/doc/cocos-docs-master/manual/code-ide/function-guides/compiling/package-ios-runtime/zh.md

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 324
精华内容 129
关键字:

如何制作证书