如何在本地linux/Windows上创建自签证书


创建自签名证书并在内部网络中使用是一项相对直接的任务,但确实需要一些步骤来正确执行。下面是在Linux系统上使用OpenSSL生成自签名证书的基本过程,以及如何在服务器和客户端上配置信任此证书的方法:

1. 生成自签名证书

在服务器上:

  1. 安装OpenSSL(如果尚未安装):

    sudo apt-get update
    sudo apt-get install openssl
    
  2. 生成私钥

    openssl genpkey -algorithm RSA -out server.key
    
  3. 使用私钥生成自签名证书

    openssl req -new -x509 -sha256 -days 3650 -key server.key -out server.crt
    

    在执行req命令时,你需要填写一些信息,如国家代码、省份、城市、组织名、组织单位名、通用名(通常是你的域名或IP地址),以及电子邮件地址。

2. 配置服务器使用证书

假设你使用的是Nginx作为Web服务器:

  1. 编辑Nginx配置文件,添加证书路径:

    ssl_certificate /path/to/server.crt;
    ssl_certificate_key /path/to/server.key;
    

    并启用SSL/TLS。

  2. 重启Nginx

    sudo systemctl restart nginx
    

3. 安装证书到客户端

对于Linux客户端:

  1. 将证书复制到客户端机器

    scp server.crt user@client-machine:/home/user/
    
  2. 导入证书到信任存储

    sudo cp server.crt /usr/local/share/ca-certificates/
    sudo update-ca-certificates
    

对于Windows客户端:

  1. 将证书复制到客户端,然后双击打开证书文件,按照提示安装证书到受信任的根证书颁发机构。

对于浏览器:

  1. 导出证书为.pfx格式(如果需要),然后在浏览器的证书管理器中导入证书。

4. 测试连接

在客户端尝试访问服务器的HTTPS地址,应该不会出现任何证书警告。

注意事项:

  • 定期更新证书:尽管自签名证书可以设置较长的有效期,但建议定期更新证书,以维护安全性。
  • 保护私钥:私钥应当严格保密,一旦泄露,证书的安全性将大打折扣。
  • 文档化:确保记录下生成和安装证书的过程,以便未来参考或培训新员工。

自签名证书仅适用于内部网络,因为它们不会被公共的信任链所识别,所以不能用于需要公信力的外部服务。在内部网络中,通过上述步骤可以有效地使用自签名证书来加密通信,增强安全性。

在基于Node.js的Vue项目中,更新package-lock.json文件、加载DLL(动态链接库,虽然在前端项目中更常见的是Webpack的DllPlugin和DllReferencePlugin用于代码分离和缓存利用)、以及打包整个流程,通常涉及以下步骤和命令:

1. 更新依赖和package-lock.json

首先,确保你的依赖是最新的,可以通过删除node_modules文件夹和package-lock.json文件,然后重新运行npm install来做到这一点。

rm -rf node_modules package-lock.json
npm install

2. 创建或更新DLLs

对于DLLs,你需要先生成DLL配置文件,然后构建DLLs。这里假设你已经设置好了webpack.dll.config.js。如果没有,你需要根据项目需求创建一个。以下是一个简单的示例:

// webpack.dll.config.js
const path = require('path');

module.exports = {
  entry: {
    vendor: ['vue', 'vue-router', 'vuex'],
  },
  output: {
    filename: '[name].dll.js',
    path: path.resolve(__dirname, 'dll'),
    library: '[name]_library'
  },
  plugins: [
    new webpack.DllPlugin({
      name: '[name]_library',
      path: path.join(__dirname, 'dll', '[name]-manifest.json')
    })
  ]
};

接着,构建DLLs:

npx webpack --config webpack.dll.config.js

3. 使用DLLs

在你的主webpack.config.js中,你需要引用之前生成的DLLs:

// webpack.config.js
const path = require('path');

module.exports = {
  // ...
  plugins: [
    new webpack.DllReferencePlugin({
      manifest: require(path.resolve(__dirname, 'dll/vendor-manifest.json'))
    })
  ],
  // ...
};

4. 打包项目

最后,使用Webpack进行打包:

npx webpack

如果你使用的是Vue CLI,那么你可能需要稍微调整命令,因为Vue CLI使用的是内部的Webpack配置,你可能不需要手动配置Webpack。在Vue CLI中,你可以直接运行:

npm run build
教程
测试