我必须为网站添加ssl(https),我获得了SSL.CSR和SSL.KEY文件.我'dos2unix'ed他们(因为他们尾随^ M)并将它们复制到服务器(CSR - > mywebsite.crt,KEY - > mywebsite.key).我对nginx.conf进行了以下修改:
@@ -60,8 +60,13 @@
}
server {
- listen 80;
+ listen 443;
server_name ...;
+ ssl on;
+ ssl_certificate mywebsite.crt;
+ ssl_certificate_key mywebsite.key;
+ ssl_session_cache shared:SSL:10m;
+ ssl_session_timeout 10m;
# Set the max size for file uploads to 500Mb
client_max_body_size 500M;
Run Code Online (Sandbox Code Playgroud)
重新启动nginx时发生错误:
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0906D06C:PEM routines:PEM_read_bio:no start line:Expecting: TRUSTED CERTIFICATE)
Run Code Online (Sandbox Code Playgroud)
我认为这是因为mywebsite.crt文件的第一行包含'REQUEST',所以我从第一行和最后一行删除'REQUEST',然后再次重启nginx,并点击另一个错误:
nginx: [emerg] PEM_read_bio_X509_AUX("/etc/nginx/mywebsite.crt") failed (SSL: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag error:0D06C03A:asn1 encoding routines:ASN1_D2I_EX_PRIMITIVE:nested asn1 error error:0D08303A:asn1 encoding routines:ASN1_TEMPLATE_NOEXP_D2I:nested …
Run Code Online (Sandbox Code Playgroud) RSA公钥:
PUBKEY = 'MIGfMA0GCSqGSIb3DQEBA3UAA4GNADCBiQKBgQC35eMaYoJXEoJt5HxarHkzDBEMU3qIWE0HSQ77CwP/8UbX07W2XKwngUyY4k6Hl2M/n9TOZMZsiBzer/fqV + QNPN1m9M94eUm2gQgwkoRj5battRCaNJK/23GGpCsTQatJN8PZBhJBb2Vlsvw5lFrSdMT1R7vaz + 2EeNR/FitFXwIDAQAB'
如何导入并使用它来加密字符串?
我尝试了以下代码,但RSA.construct()引发了异常(TypeError:必须是long,而不是str).
from Crypto.PublicKey import RSA
from Crypto.Util import asn1
from base64 import b64decode
keyDER = b64decode(pubkey)
seq = asn1.DerSequence()
seq.decode(keyDER)
keyPub = RSA.construct((seq[0], seq[1]))
print keyPub.encrypt('mysecret', 32)
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在遵循Rails 教程,在注册表单中,如果提交了无效的用户信息,则应该重新呈现注册页面并显示错误消息,但实际上并没有。看来即使注册页面是由 渲染的"render \'new\'"
,传递给它的@user 也是空的。如何解决这个问题?
请注意,本教程使用 Rails 6,但我实际上使用的是 Rails 7.0.2.3 和 Ruby 3.1.1。不确定这是否是原因。
\n应用程序/控制器/user_controller.rb
\nclass UsersController < ApplicationController\n def new\n @user = User.new\n end\n\n def create\n @user = User.new(user_params)\n if @user.save\n else\n render \'new\'\n end\n end\n\n def show\n @user = User.find(params[:id])\n end\n\n private\n\n def user_params\n params.require(:user).permit(:name, :email, :password, :password_confirmation)\n end\nend\n
Run Code Online (Sandbox Code Playgroud)\n应用程序/视图/用户/new.html.erb
\n<% provide(:title, \'Sign up\') %>\n<h1>Sign up</h1>\n\n<div class="row">\n <div class="col-md-6 col-md-offset-3">\n <%= form_with(model: @user, local: true) do |f| %>\n <%= render …
Run Code Online (Sandbox Code Playgroud) 当我使用 ssh 命令手动连接到主机时,一切正常:
$ ssh -v admin@mycli.abc.com -p 10000
OpenSSH_6.1p1, OpenSSL 1.0.1c 10 May 2012
debug1: Reading configuration data /home/todd/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to mycli.abc.com [mycli.abc.com] port 10000.
debug1: Connection established.
debug1: identity file /home/todd/.ssh/id_rsa type 1
debug1: identity file /home/todd/.ssh/id_rsa-cert type -1
debug1: identity file /home/todd/.ssh/id_dsa type -1
debug1: identity file /home/todd/.ssh/id_dsa-cert type -1
debug1: identity file /home/todd/.ssh/id_ecdsa type -1
debug1: identity file /home/todd/.ssh/id_ecdsa-cert type -1
debug1: Remote protocol version 2.0, remote software version SSHD-CORE-0.6.0 …
Run Code Online (Sandbox Code Playgroud)