咕噜猫小站

do it, do it right, do it right now

0%

使用 openssl 生成证书

1. 前置知识

KEY 通常指私钥。

CSR 是 Certificate Signing Request 的缩写,即证书签名请求,这不是证书,只是包含申请证书的基本信息。生成证书时要把这个提交给权威的证书颁发机构,颁发机构审核通过之后,再根据这些申请信息生成相应的证书。

Nginx SSL 优化配置方法

参考:

https://wiki.mozilla.org/Security/Server_Side_TLS#Nginx

https://mozilla.github.io/server-side-tls/ssl-config-generator/

其中:

  • HSTS 慎用
  • http2 优势明显,但是不适合于 nginx 当反向代理的情况。比较适合的情况是,如 php 这类直接解析的。非代理的情况下建议用 http2 。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    # Redirect all HTTP requests to HTTPS with a 301 Moved Permanently response.
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    # certs sent to the client in SERVER HELLO are concatenated in ssl_certificate
    ssl_certificate /path/to/signed_cert_plus_intermediates;
    ssl_certificate_key /path/to/private_key;
    ssl_session_timeout 1d;
    ssl_session_cache shared:SSL:50m;
    ssl_session_tickets off;

    # modern configuration. tweak to your needs.
    ssl_protocols TLSv1.2;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
    ssl_prefer_server_ciphers on;

    # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)
    add_header Strict-Transport-Security max-age=15768000;

    # OCSP Stapling ---
    # fetch OCSP records from URL in ssl_certificate and cache them
    ssl_stapling on;
    ssl_stapling_verify on;

    ## verify chain of trust of OCSP response using Root CA and Intermediate certs
    ssl_trusted_certificate /path/to/root_CA_cert_plus_intermediates;

    resolver <IP DNS resolver>;

    ....
}

JAVA 导入信任证书 (Keytool 的使用)

1. 问题背景

使用 ssl 连接时,遇到不信任的证书,应用程序一般都会拒绝连接。

浏览网站时,我们可以通过在浏览器的设置中导入证书,把证书加入到信任列表中。

xrdp 远程桌面配置备注

参考 https://wiki.archlinux.org/index.php/Xrdp

1. 安装 xrdp

1
sudo apt install xrdp

2. 配置

安装完成后,可以直接使用。如果远程连接时,客户端出现黑屏,则可以修改

1
2
3
4
5
6
sudo vi /etc/X11/Xwrapper.config

# Change from
allowed_users=console
# to
allowed_users=anybody

然后重启 Xorg, 此时远程连接可以正常显示。

vsftp 配置说明

vsftp 是 linux 下非常有名的一个 ftp 服务器程序。不过其配置稍微有点复杂。以下对其配置作简单说明。

先贴一段目前在用的配置(已把注释部分去掉了),本配置的效果有:

Nextcloud 安装备注

安装

待补充。

docker 方式安装

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
version: '3'

services:
  db:
    image: mariadb:latest
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: always
    volumes:
      - db:/var/lib/mysql
    environment:
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    networks:
      - nextcloud

  redis:
    image: redis:alpine
    restart: always
    volumes:
      - redis_data:/data
    networks:
      - nextcloud

  app:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - nextcloud:/var/www/html
    environment:
      - MYSQL_HOST=db
      - REDIS_HOST=redis
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    depends_on:
      - db
      - redis
    networks:
      - nextcloud

  cron:
    image: nextcloud:fpm-alpine
    restart: always
    volumes:
      - nextcloud:/var/www/html
    entrypoint: /cron.sh
    environment:
      - MYSQL_HOST=db
      - REDIS_HOST=redis
      - MYSQL_PASSWORD=nextcloud
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=nextcloud
    depends_on:
      - db
      - redis
    networks:
      - nextcloud

  web:
    image: nginx:alpine
    restart: always
    ports:
      - 80:80
    volumes:
      - nextcloud:/var/www/html:ro
      - nginx_conf:/etc/nginx/conf.d
    depends_on:
      - app
    networks:
      - nextcloud

  onlyoffice:
    image: onlyoffice/documentserver:latest
    restart: always
    ports:
      - 8088:80
    volumes:
      - onlyoffice_data:/var/www/onlyoffice/Data
      - onlyoffice_etc:/etc/onlyoffice
      - onlyoffice_fonts:/usr/share/fonts/truetype/custom
      - onlyoffice_lib:/var/lib/onlyoffice
      - onlyoffice_db:/var/lib/postgresql
      - onlyoffice_log:/var/log/onlyoffice
    networks:
      - nextcloud

volumes:
  nextcloud:
  db:
  nginx_conf:
  redis_data:
  onlyoffice_data:
  onlyoffice_etc:
  onlyoffice_fonts:
  onlyoffice_lib:
  onlyoffice_db:
  onlyoffice_log:

networks:
  nextcloud:

其他

Nextcloud 与 Onlyoffice 集成:

Onlyoffice 安装指南

1. 安装 docker

2. 使用 docker 运行 onlyoffice

1
2
3
4
5
6
7
docker run -i -t -d -p 8380:80 -p 8343:443 \
    -v /var/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
    -v /var/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
    -v /var/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /var/onlyoffice/DocumentServer/db:/var/lib/postgresql \
    --name onlyoffice_ds \
    onlyoffice/documentserver

3. 使用 ssl 证书

onlyoffice 的证书默认是加载 data 目录下的 certs/onlyoffice.crt 和 certs/onlyoffice.key ,把证书按该名字放入相应位置即可。

Jupyterhub 安装指南

Jupyter notebook 是一款很好用的在线开发 python 工具,不过它原生只能单用户使用,没有多用户登录功能。而 Jupyterhub 就是为解决这个问题而开发的。

一、安装 nodejs (若已安装则跳过)

参考:

JIRA 7.3 安装指南 (Ubuntu 16.04)

1. 下载 jira 7.3.8 安装包

1
wget https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.3.8-x64.bin

2. 下载 jira 7.3 破解包

从以下地址下载破解包:

1

或者从附件中获取。 (jira7.3-crack.zip)

3. 安装 mysql (若已安装则跳过)

安装 mysql :

1
  sudo apt-get install mysql-server

在 mysql 命令行中运行下面命令: