<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>🐼 MYPANDA</title>
  
  
  <link href="/atom.xml" rel="self"/>
  
  <link href="http://mypanda.github.io/"/>
  <updated>2024-11-13T16:44:55.501Z</updated>
  <id>http://mypanda.github.io/</id>
  
  <author>
    <name>mypanda</name>
    
  </author>
  
  <generator uri="http://hexo.io/">Hexo</generator>
  
  <entry>
    <title>如何创建自签https证书</title>
    <link href="http://mypanda.github.io/2024/11/13/how-to-create-a-self-signed-https-certificate/"/>
    <id>http://mypanda.github.io/2024/11/13/how-to-create-a-self-signed-https-certificate/</id>
    <published>2024-11-13T15:08:29.000Z</published>
    <updated>2024-11-13T16:44:55.501Z</updated>
    
    <content type="html"><![CDATA[<p>从创建根证书开始，并使用根证书签名证书，适用于需要https加密的场景,Nginx,K8s等。下面将会使用<code>Cloudflare</code>的开源<code>PKI</code>和<code>TLS</code>工具<code>cfssl</code>创建</p><a id="more"></a><h2 id="概览"><a href="#概览" class="headerlink" title="概览"></a>概览</h2><ul><li>.crt和.cer:多为PEM或DER编码的证书,仅包含公钥部分</li><li>.pem: Base64格式文本文件，能包含公钥，私钥，证书链等信息，灵活性强</li><li>.pfx(.p12):二进制格式，包含公钥，私钥，证书链，适用于Windows系统和私钥传输</li><li>.der:二进制格式，同城包含证书的公钥，适合Java环境</li></ul><h2 id="下载软件"><a href="#下载软件" class="headerlink" title="下载软件"></a>下载软件</h2><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><span class="line">curl -L https://github.com/cloudflare/cfssl/releases/download/v1.5.0/cfssl_1.5.0_linux_amd64 -o cfssl</span><br><span class="line">curl -L https://github.com/cloudflare/cfssl/releases/download/v1.5.0/cfssljson_1.5.0_linux_amd64 -o cfssljson</span><br><span class="line">curl -L https://github.com/cloudflare/cfssl/releases/download/v1.5.0/cfssl-certinfo_1.5.0_linux_amd64 -o cfssl-certinfo</span><br><span class="line">chmod +x cfssl cfssljson cfssl-certinfo</span><br></pre></td></tr></table></figure><h2 id="根证书"><a href="#根证书" class="headerlink" title="根证书"></a>根证书</h2><h3 id="生成默认根证书配置文件config-json和根证书申请文件csr-json"><a href="#生成默认根证书配置文件config-json和根证书申请文件csr-json" class="headerlink" title="生成默认根证书配置文件config.json和根证书申请文件csr.json"></a>生成默认根证书配置文件<code>config.json</code>和根证书申请文件<code>csr.json</code></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">./cfssl <span class="built_in">print</span>-defaults config &gt; config.json</span><br><span class="line">./cfssl <span class="built_in">print</span>-defaults csr &gt; csr.json</span><br></pre></td></tr></table></figure><h3 id="创建根证书配置文件"><a href="#创建根证书配置文件" class="headerlink" title="创建根证书配置文件"></a>创建根证书配置文件</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br></pre></td><td class="code"><pre><span class="line">cat &gt; ca-config.json &lt;&lt; EOF</span><br><span class="line">&#123;</span><br><span class="line">  <span class="string">"signing"</span>: &#123;</span><br><span class="line">    <span class="string">"default"</span>: &#123;</span><br><span class="line">      <span class="string">"expiry"</span>: <span class="string">"876000h"</span></span><br><span class="line">    &#125;,</span><br><span class="line">    <span class="string">"profiles"</span>: &#123;</span><br><span class="line">      <span class="string">"www"</span>: &#123;</span><br><span class="line">        <span class="string">"expiry"</span>: <span class="string">"876000h"</span>,</span><br><span class="line">        <span class="string">"usages"</span>: [</span><br><span class="line">          <span class="string">"signing"</span>,</span><br><span class="line">          <span class="string">"key encipherment"</span>,</span><br><span class="line">          <span class="string">"server auth"</span>,</span><br><span class="line">          <span class="string">"client auth"</span></span><br><span class="line">        ]</span><br><span class="line">      &#125;</span><br><span class="line">    &#125;</span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line">EOF</span><br></pre></td></tr></table></figure><h3 id="创建根证书申请文件"><a href="#创建根证书申请文件" class="headerlink" title="创建根证书申请文件"></a>创建根证书申请文件</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line">cat &gt; ca-csr.json &lt;&lt; EOF</span><br><span class="line">&#123;</span><br><span class="line">  <span class="string">"CN"</span>: <span class="string">"MyCert Root CA"</span>,</span><br><span class="line">  <span class="string">"key"</span>: &#123;</span><br><span class="line">    <span class="string">"algo"</span>: <span class="string">"rsa"</span>,</span><br><span class="line">    <span class="string">"size"</span>: 2048</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="string">"names"</span>: [</span><br><span class="line">    &#123;</span><br><span class="line">      <span class="string">"C"</span>: <span class="string">"CN"</span>,</span><br><span class="line">      <span class="string">"ST"</span>: <span class="string">"Shanghai"</span>,</span><br><span class="line">      <span class="string">"L"</span>: <span class="string">"Shanghai"</span>,</span><br><span class="line">      <span class="string">"O"</span>: <span class="string">"MyCert Inc"</span>,</span><br><span class="line">      <span class="string">"OU"</span>: <span class="string">"MyCert Inf"</span></span><br><span class="line">    &#125;</span><br><span class="line">  ],</span><br><span class="line">  <span class="string">"ca"</span>: &#123;</span><br><span class="line">    <span class="string">"expiry"</span>: <span class="string">"876000h"</span></span><br><span class="line">  &#125;</span><br><span class="line">&#125;</span><br><span class="line">EOF</span><br></pre></td></tr></table></figure><h3 id="生成根证书ca-pem和私钥ca-key-pem"><a href="#生成根证书ca-pem和私钥ca-key-pem" class="headerlink" title="生成根证书ca.pem和私钥ca-key.pem"></a>生成根证书<code>ca.pem</code>和私钥<code>ca-key.pem</code></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cfssl gencert -initca ca-csr.json | ./cfssljson -bare ca</span><br></pre></td></tr></table></figure><h3 id="查看根证书"><a href="#查看根证书" class="headerlink" title="查看根证书"></a>查看根证书</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cfssl certinfo -cert ca.pem</span><br></pre></td></tr></table></figure><h2 id="证书"><a href="#证书" class="headerlink" title="证书"></a>证书</h2><h3 id="创建证书申请文件server-csr-json"><a href="#创建证书申请文件server-csr-json" class="headerlink" title="创建证书申请文件server-csr.json"></a>创建证书申请文件<code>server-csr.json</code></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line">cat &gt; server-csr.json &lt;&lt; EOF</span><br><span class="line">&#123;</span><br><span class="line">  <span class="string">"CN"</span>: <span class="string">"Mypanda.com"</span>,</span><br><span class="line">  <span class="string">"hosts"</span>: [</span><br><span class="line">    <span class="string">"123.123.123.123"</span>,</span><br><span class="line">    <span class="string">"Mypanda.com"</span></span><br><span class="line">  ],</span><br><span class="line">  <span class="string">"key"</span>: &#123;</span><br><span class="line">    <span class="string">"algo"</span>: <span class="string">"rsa"</span>,</span><br><span class="line">    <span class="string">"size"</span>: 2048</span><br><span class="line">  &#125;,</span><br><span class="line">  <span class="string">"names"</span>: [</span><br><span class="line">    &#123;</span><br><span class="line">      <span class="string">"C"</span>: <span class="string">"CN"</span>,</span><br><span class="line">      <span class="string">"L"</span>: <span class="string">"Shanghai"</span>,</span><br><span class="line">      <span class="string">"ST"</span>: <span class="string">"Shanghai"</span>,</span><br><span class="line">      <span class="string">"O"</span>: <span class="string">"Mypanda Co., Ltd"</span>,</span><br><span class="line">      <span class="string">"OU"</span>: <span class="string">"Mypanda Inf"</span></span><br><span class="line">    &#125;</span><br><span class="line">  ]</span><br><span class="line">&#125;</span><br><span class="line">EOF</span><br></pre></td></tr></table></figure><h3 id="生成证书server-pem和私钥server-key-pem"><a href="#生成证书server-pem和私钥server-key-pem" class="headerlink" title="生成证书server.pem和私钥server-key.pem"></a>生成证书<code>server.pem</code>和私钥<code>server-key.pem</code></h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=www server-csr.json | ./cfssljson -bare server</span><br></pre></td></tr></table></figure><h3 id="查看证书"><a href="#查看证书" class="headerlink" title="查看证书"></a>查看证书</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">./cfssl certinfo -cert ca.pem</span><br></pre></td></tr></table></figure><h2 id="OpenSSL创建根证书和证书"><a href="#OpenSSL创建根证书和证书" class="headerlink" title="OpenSSL创建根证书和证书"></a><code>OpenSSL</code>创建根证书和证书</h2><p>创建根证书和证书有下面几种方式,区别为多条命令还是单条命令，亦或无需输入信息一条命令</p><h3 id="创建根自签证书"><a href="#创建根自签证书" class="headerlink" title="创建根自签证书"></a>创建根自签证书</h3><p>下面以创建根证书为例</p><ol><li><p>第一种方式,创建根证书私钥,创建根证书请求文件，然后生成证书</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 创建根证书私钥</span></span><br><span class="line">openssl genpkey -algorithm RSA -out ca.key [-pkeyopt rsa_keygen_bits:2048]</span><br><span class="line"><span class="comment"># 创建根证书请求文件</span></span><br><span class="line">openssl req -new -key ca.key -out ca.csr</span><br><span class="line"><span class="comment"># 创建自签名证书</span></span><br><span class="line">openssl x509 -req -days 365 -<span class="keyword">in</span> ca.csr -signkey ca.key -out ca.crt</span><br><span class="line"><span class="comment"># 查看根证书</span></span><br><span class="line">openssl x509 -<span class="keyword">in</span> ca.crt -text -noout</span><br></pre></td></tr></table></figure></li><li><p>第二种方式,一条命令生成根证书私钥和根证书</p></li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl req -newkey rsa:2048 -nodes -keyout ca.key -x509 -days 365 -out ca.crt</span><br></pre></td></tr></table></figure><ol start="3"><li>第三种方式，不需要手动输入信息，一条命令生成根证书私钥和根证书</li></ol><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl req -newkey rsa:2048 -nodes -keyout ca.key -x509 -days 365 -out ca.crt -subj <span class="string">"//C=CN/ST=Shanghai/L=Shanghai/O=Organization/OU=OrganizationUnit/CN=Domain"</span></span><br></pre></td></tr></table></figure><h3 id="使用上一步创建的根证书签名证书"><a href="#使用上一步创建的根证书签名证书" class="headerlink" title="使用上一步创建的根证书签名证书"></a>使用上一步创建的根证书签名证书</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 证书私钥</span></span><br><span class="line">openssl genpkey -algorithm RSA -out server.key -pkeyopt rsa_keygen_bits:2048</span><br><span class="line"><span class="comment"># 证书签名请求</span></span><br><span class="line">openssl req -new -key server.key -out server.csr</span><br><span class="line"><span class="comment"># 签发证书</span></span><br><span class="line">openssl x509 -req -<span class="keyword">in</span> server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365 -sha256</span><br><span class="line"><span class="comment"># 查看证书</span></span><br><span class="line">openssl x509 -<span class="keyword">in</span> server.crt -text -noout</span><br></pre></td></tr></table></figure><h3 id="参数说明"><a href="#参数说明" class="headerlink" title="参数说明"></a>参数说明</h3><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br></pre></td><td class="code"><pre><span class="line">-newkey rsa:2024 生成2024位RSA密钥</span><br><span class="line">-nodes           生成不加密的私钥文件</span><br><span class="line">-keyout ca.key   指定私钥文件名</span><br><span class="line">-x509            生成自签名证书</span><br><span class="line">-days 365        证书有效期365天</span><br><span class="line">-out ca.crt      指定证书名</span><br><span class="line">-subj &quot;/C=CN/ST=Shanghai/L=Shanghai/O=Organization/OU=OrganizationUnit/CN=Domain&quot; 指定证书的主题信息,避免手动输入</span><br><span class="line"></span><br><span class="line">C   国家代码，如中国CN</span><br><span class="line">ST  州/省名称</span><br><span class="line">L   城市名称</span><br><span class="line">O   组织名称，如公司名称</span><br><span class="line">OU  组织单位名称，如部门名称</span><br><span class="line">CN  通用名称，通常是域名或服务器名称</span><br></pre></td></tr></table></figure><h2 id="服务器配置证书"><a href="#服务器配置证书" class="headerlink" title="服务器配置证书"></a>服务器配置证书</h2><h3 id="Nginx"><a href="#Nginx" class="headerlink" title="Nginx"></a>Nginx</h3><p>Nginx可以直接使用<code>server.pem</code>证书，配置如下</p><figure class="highlight plain"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br></pre></td><td class="code"><pre><span class="line">server &#123;</span><br><span class="line">    listen 443 ssl;</span><br><span class="line">    server_name &lt;YourDomain&gt;; # 证书绑定的域名,IP则注释</span><br><span class="line">    ssl_certificate cert/server.pem; # 相对于配置文件的路径</span><br><span class="line">    ssl_certificate_key cert/server-key.pem;</span><br><span class="line">    ssl_session_cache shared:SSL:1m;</span><br><span class="line">    ssl_session_timeout 5m;</span><br><span class="line">    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; # 密码套件</span><br><span class="line">    ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;</span><br><span class="line">&#125;</span><br></pre></td></tr></table></figure><h3 id="Kestrel-IIS"><a href="#Kestrel-IIS" class="headerlink" title="Kestrel/IIS"></a>Kestrel/IIS</h3><ol><li><code>window server 2019</code>的<code>kestrel</code>服务，需要使用<code>openssl 1.1.x</code>转换的pfx证书，原理暂未确定，见参考</li><li>需要把<code>pem</code>证书转换为<code>pfx</code>证书，才可以使用</li></ol><h3 id="pem证书转pfx证书"><a href="#pem证书转pfx证书" class="headerlink" title="pem证书转pfx证书"></a><code>pem</code>证书转<code>pfx</code>证书</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 生成密码</span></span><br><span class="line">openssl rand -base64 10</span><br><span class="line"><span class="comment"># 使用密码，转换证书</span></span><br><span class="line">openssl pkcs12 -<span class="built_in">export</span> -out server.pfx -inkey server-key.pem -<span class="keyword">in</span> server.pem</span><br><span class="line"><span class="comment"># 查看pfx证书</span></span><br><span class="line">openssl pkcs12 -<span class="keyword">in</span> server.pfx -info</span><br><span class="line"><span class="comment"># openssl pkcs12 -clcerts -nokeys -in server.pfx</span></span><br><span class="line"><span class="comment"># openssl pkcs12 -in server.pfx -nocerts -nodes</span></span><br></pre></td></tr></table></figure><h2 id="Window-PC配置根证书-使浏览器信任自签证书"><a href="#Window-PC配置根证书-使浏览器信任自签证书" class="headerlink" title="Window PC配置根证书,使浏览器信任自签证书"></a><code>Window PC</code>配置根证书,使浏览器信任自签证书</h2><p>首先把根证书从<code>pem</code>转成<code>pfx</code>,然后添加到<code>受信任的根证书颁发机构</code>位置即可</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">openssl pkcs12 -<span class="built_in">export</span> -out ca.pfx -inkey ca-key.pem -<span class="keyword">in</span> ca.pem</span><br></pre></td></tr></table></figure><h2 id="参考"><a href="#参考" class="headerlink" title="参考"></a>参考</h2><p><a href="https://blog.csdn.net/robin_cai/article/details/120758214" target="_blank" rel="noopener">https://blog.csdn.net/robin_cai/article/details/120758214</a></p><p><a href="https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/certificates/" target="_blank" rel="noopener">https://kubernetes.io/zh-cn/docs/tasks/administer-cluster/certificates/</a></p><p><a href="https://www.howtouselinux.com/post/converting-cer-crt-der-pem-pfx-certificate#Convert_PEM_to_DER" target="_blank" rel="noopener">https://www.howtouselinux.com/post/converting-cer-crt-der-pem-pfx-certificate#Convert_PEM_to_DER</a></p><p><a href="https://blog.csdn.net/u010358168/article/details/83508851" target="_blank" rel="noopener">https://blog.csdn.net/u010358168/article/details/83508851</a></p><p><a href="https://blog.csdn.net/u014163312/article/details/105744177" target="_blank" rel="noopener">https://blog.csdn.net/u014163312/article/details/105744177</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;从创建根证书开始，并使用根证书签名证书，适用于需要https加密的场景,Nginx,K8s等。下面将会使用&lt;code&gt;Cloudflare&lt;/code&gt;的开源&lt;code&gt;PKI&lt;/code&gt;和&lt;code&gt;TLS&lt;/code&gt;工具&lt;code&gt;cfssl&lt;/code&gt;创建&lt;/p&gt;
    
    </summary>
    
    
  </entry>
  
  <entry>
    <title>Hello World</title>
    <link href="http://mypanda.github.io/2017/12/31/hello-world/"/>
    <id>http://mypanda.github.io/2017/12/31/hello-world/</id>
    <published>2017-12-31T08:04:40.000Z</published>
    <updated>2024-11-14T05:55:15.205Z</updated>
    
    <content type="html"><![CDATA[<p>Welcome to <a href="https://hexo.io/" target="_blank" rel="noopener">Hexo</a>! This is your very first post. Check <a href="https://hexo.io/docs/" target="_blank" rel="noopener">documentation</a> for more info. If you get any problems when using Hexo, you can find the answer in <a href="https://hexo.io/docs/troubleshooting.html" target="_blank" rel="noopener">troubleshooting</a> or you can ask me on <a href="https://github.com/hexojs/hexo/issues" target="_blank" rel="noopener">GitHub</a>.<br><a id="more"></a></p><h2 id="Quick-Start"><a href="#Quick-Start" class="headerlink" title="Quick Start"></a>Quick Start</h2><h3 id="Create-a-new-post"><a href="#Create-a-new-post" class="headerlink" title="Create a new post"></a>Create a new post</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo new <span class="string">"My New Post"</span></span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/writing.html" target="_blank" rel="noopener">Writing</a></p><h3 id="Run-server"><a href="#Run-server" class="headerlink" title="Run server"></a>Run server</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo server</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/server.html" target="_blank" rel="noopener">Server</a></p><h3 id="Generate-static-files"><a href="#Generate-static-files" class="headerlink" title="Generate static files"></a>Generate static files</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo generate</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/generating.html" target="_blank" rel="noopener">Generating</a></p><h3 id="Deploy-to-remote-sites"><a href="#Deploy-to-remote-sites" class="headerlink" title="Deploy to remote sites"></a>Deploy to remote sites</h3><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ hexo deploy</span><br></pre></td></tr></table></figure><p>More info: <a href="https://hexo.io/docs/deployment.html" target="_blank" rel="noopener">Deployment</a></p>]]></content>
    
    <summary type="html">
    
      &lt;p&gt;Welcome to &lt;a href=&quot;https://hexo.io/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;Hexo&lt;/a&gt;! This is your very first post. Check &lt;a href=&quot;https://hexo.io/docs/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;documentation&lt;/a&gt; for more info. If you get any problems when using Hexo, you can find the answer in &lt;a href=&quot;https://hexo.io/docs/troubleshooting.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;troubleshooting&lt;/a&gt; or you can ask me on &lt;a href=&quot;https://github.com/hexojs/hexo/issues&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;GitHub&lt;/a&gt;.&lt;br&gt;
    
    </summary>
    
    
  </entry>
  
</feed>
