Yes this can be done, using SQL Server replication. You’ll probably want to initialize the subscription using a process called init from backup, which allows you to take a backup of the main database and then restore that database to the remote system.
Will you need to allow people to write to both servers? If you do you’ll want to use either merge or peer to peer replication. If people only need to be able to write to one server then you will want to use transactional replication from the database that people write to, to the database that people only read from.
You can easily enough encrypt the connection using SSL using SQL Server’s native SSL encryption functions, but keep in mind that encryption will slow things down as this does take bandwidth.
The key will be to only replicate the tables that you need to replicate so that you aren’t wasting bandwidth on things that don’t need to be moved.
If you are using stored procedures to run the application then you can also replicate the stored procedures, which will replicate the stored procedure execution instead of the actual table level replication which could reduce the amount of bandwidth needed (depending on how complex the stored procedures are, and how many changes each stored procedure makes).
You could also look at using something like SQL Service Broker (if you are using SQL Server 2005 or newer) to replicate the data instead of replication. This would give you more control.